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

mim*_*mic 3 arrays ajax jquery

我有以下数组:

var idParam = ["1","2","3"];
Run Code Online (Sandbox Code Playgroud)

我想发送这些数据作为请求使用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)
        {
            ...
        }
});
Run Code Online (Sandbox Code Playgroud)

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

怎么做才能得到正常的字符串:id=1&id=2&id=4?? 谢谢

gna*_*arf 7

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

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

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