Đoạn mã sau hoạt động cho tôi bằng cách sử dụng jQuery 1.2.6 nhưng gây ra lỗi môi giới trong 1.4.Truyền mảng trong cuộc gọi ajax bằng cách sử dụng jQuery 1.4
var items = new Array();
items[0] = "Item 1";
items[1] = "Item 2";
items[2] = "Item 3";
var dataToSend = {'_service' : myService, '_program' : myProgram, 'selections' : items} ;
$.ajax({
type: "post",
url: myURL,
dataType: "text",
data: dataToSend,
success: function(request) {$('#results').html(request); } // End success
}); // End ajax method
Lỗi môi giới tôi nhận thấy rằng những gì đang được thông qua trong các lựa chọn là 'lựa chọn []'
ERROR:. (nhân vật không hợp lệ "[" trong tên trường "Lựa chọn []" Nhân vật này không được phép trong tên trường.)
Có sự thay đổi trong cách jQuery xử lý mảng trong cuộc gọi ajax không? hoặc là một cách không chính xác để vượt qua một mảng?
Mọi trợ giúp sẽ được đánh giá cao.
EDIT: Câu trả lời từ @jvenema đã giải quyết được sự cố của tôi. Với cài đặt "truyền thống", bạn có thể khiến jQuery xử lý các thông số như phiên bản trước. Dưới đây là một số liên kết bổ sung đề cập đến thay đổi jQuery.ajax(), jQuery.param() và bài đăng trên blog jQuery 1.4 $.param demystified.
Hoặc là một tuyên bố chung của
jQuery.ajaxSettings.traditional = true;
hoặc như là một tùy chọn bổ sung trong các cuộc gọi ajax
$.ajax({
traditional: true,
type: "post",
url: myURL,
dataType: "text",
data: dataToSend,
success: function(request) {
$('#results').html(request);
} // End success
}); // End ajax method
Ngoài ra, bạn nên đề cập đến cách thực hiện nó cho một cuộc gọi Ajax đơn: thêm truyền thống: true vào đối tượng $ .Ajax. –
Có cách nào để có được kết quả này với 'getJSON()' hay tôi phải sử dụng 'ajax()'? – hippietrail