ฉันใช้ MVC3 / EntityFramework เป็นแบ็คเอนด์ส่วนหน้าใช้ตัวควบคุมโครงการทั้งหมดของฉันผ่าน jquery การโพสต์โดยตรง (โดยใช้ $. post) ไม่ต้องการการบังคับใช้ข้อมูลเมื่อคุณผ่าน params อื่นนอกเหนือจาก URL hardcoded โดยตรง ฉันทดสอบตัวอักษรหลายตัวฉันได้ส่ง URL ไปแล้ว (อันนี้http://www.ihackforfun.eu/index.php?title=update-on-url-crazy&more=1&c=1&tb=1&pb=1 ) เป็นพารามิเตอร์และมี ไม่มีปัญหาเลยแม้ว่า encodeURIComponent จะทำงานได้ดีเมื่อคุณส่งข้อมูลทั้งหมดใน URL (ฮาร์ดโค้ด)
URL ที่ฮาร์ดโค้ดเช่น>
var encodedName = encodeURIComponent(name);
var url = "ControllerName/ActionName/" + encodedName + "/" + keyword + "/" + description + "/" + linkUrl + "/" + includeMetrics + "/" + typeTask + "/" + project + "/" + userCreated + "/" + userModified + "/" + status + "/" + parent;; // + name + "/" + keyword + "/" + description + "/" + linkUrl + "/" + includeMetrics + "/" + typeTask + "/" + project + "/" + userCreated + "/" + userModified + "/" + status + "/" + parent;
มิฉะนั้นอย่าใช้ encodeURIComponent และลองส่ง params ภายในวิธีการ ajax post แทน
var url = "ControllerName/ActionName/";
$.post(url,
{ name: nameVal, fkKeyword: keyword, description: descriptionVal, linkUrl: linkUrlVal, includeMetrics: includeMetricsVal, FKTypeTask: typeTask, FKProject: project, FKUserCreated: userCreated, FKUserModified: userModified, FKStatus: status, FKParent: parent },
function (data) {.......});
$.param
คุณสามารถใช้