【发布时间】:2010-02-03 21:11:16
【问题描述】:
以下代码适用于我使用 jQuery 1.2.6,但在 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
我得到的代理错误表明在选择中传递的是“选择[]”
错误:(字段名称“selections[]”中的字符“[”无效。字段名称中不允许使用此字符。)
jQuery 在 ajax 调用中处理数组的方式是否发生了变化?或者这是传递数组的错误方式?
任何帮助将不胜感激。
编辑:@jvenema 的回答解决了我的问题。使用“传统”设置,您可以使 jQuery 像以前的版本一样处理参数。这里有一些关于更改jQuery.ajax()、jQuery.param() 和博客文章jQuery 1.4 $.param demystified 的附加链接。
一般性陈述
jQuery.ajaxSettings.traditional = true;
或作为 ajax 调用中的附加选项
$.ajax({
traditional: true,
type: "post",
url: myURL,
dataType: "text",
data: dataToSend,
success: function(request) {
$('#results').html(request);
} // End success
}); // End ajax method
【问题讨论】:
标签: jquery