当使用包含数组的数据的jquery ajax时,最后使用[]获取参数名称

Rot*_*tem 5 jquery

$.ajax({
            url:"SomeURL",
            data: {                
                fields : ["field1", "field2"],                
            },
            success: function(data) {
            }
});
Run Code Online (Sandbox Code Playgroud)

在服务器中获取此信息:

name = fields[] , VALUE = field1
name = fields[] , VALUE = field2
Run Code Online (Sandbox Code Playgroud)

(注意括号)

那是一个错误吗?(这在我升级到1.5后开始发生)

感谢名单

Fel*_*ing 7

它不是一个错误,序列化已经改变(但已经在jQuery 1.4中).看看traditional选项:

traditional Boolean如果您希望使用传统的param序列化样式,请
将此设置为.true

jQuery.param()(也看看例子):

从jQuery 1.4开始,该$.param()方法以递归方式序列化深层对象,以适应现代脚本语言和框架,如PHP和Ruby on Rails.您可以通过设置全局禁用此功能jQuery.ajaxSettings.traditional = true;.

  • @hippietrail:正如引用文档中的最后一句所说,你可以设置`jQuery.ajaxSettings.traditional = true;`.或者不是将对象直接传递给`getJSON`,而是传递`$ .param(obj,true)`的结果. (2认同)