gno*_*dar 4 javascript ajax jquery
我想做一个ajax调用,在数据对象中我需要在同一个键中有几个值.
var data = {
foo: "bar",
foo: "baz"
}
$.ajax({
url: http://example.com/APIlocation,
data: data,
success: function (results) { console.log(results) },
dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)
目的是获得一个类似于以下内容的URL:
http://example.com/APIlocation?foo=bar&foo=baz
Run Code Online (Sandbox Code Playgroud)
我试着像这样构建数据:
var data = {
foo: ["bar","baz"]
}
Run Code Online (Sandbox Code Playgroud)
不出所料,它没有工作,因为它编码这样的URL:
http://example.com/APILocation?foo%5B%5D=bar&foo%5B%5D=baz
Run Code Online (Sandbox Code Playgroud)
我在这里尝试了解决方案,但无法使其正常工作.
小智 15
您可以使用jQuery $.param
将数组转换为包含多次相同键的参数字符串.设置第二个参数,true
使其不进行url编码,然后将该字符串传递给AJAX调用中的data属性:
var data = $.param({ foo: ['bar', 'baz'] }, true);
// data is now 'foo=bar&foo=baz'
$.ajax({
url: 'http://example.com/APIlocation',
data: data, // Will handle the string correctly.
success: function (results) { console.log(results) },
dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)
或者,使用对象,您可以将traditional
属性设置为true
:
var data = {
foo: ["bar","baz"]
};
$.ajax({
url: 'http://example.com/APIlocation',
data: data,
success: function (results) { console.log(results) },
dataType: 'json',
traditional: true
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4806 次 |
最近记录: |