jQuery.Ajax使用数组数据发出错误的请求

时间:2010-04-23 01:41:37

标签: jquery ajax arrays

我有以下数组:

var idParam = ["1","2","3"];

我想使用jQuery.ajax作为请求发送此数据,我正在做什么:

        $.ajax({
        type: "GET",
        url: "Services/GetInfo.ashx",
        data: { "id": idParam },
        contentType: "application/text",
        dataType: "json",
        success: function(result)
        {
...
        },
        error: function(XMLHttpRequest, textStatus, errorThrown)
        {
            ...
        }
});

但结果我有以下丑陋的字符串:?id[]=1&id[]=2&id[]=4(实际上它更加丑陋:id%5B%5D=1&id%5B%5D=2&id%5B%5D=4)。

如何获得正常的字符串:id=1&id=2&id=4 ?? 感谢

1 个答案:

答案 0 :(得分:7)

我假设这是使用jQuery 1.4 - 您需要使用$.ajax()traditional: true参数

或者您可以全局设置:(from $.param() docs

  

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