Javascript JQuery ajax停止数据的URL编码
我正在编写一个webapp,必须从几个api中获取数据才能向用户显示。因此,在第一步中,用户可以从第一个api中选择几个位置。在那里我得到了坐标,比如1.2345,6.7890,然后我将它们保存到一个数组中。现在我想把它们传递给路由api,参数必须是 问题是jQuery对数据进行编码并将数据转换为%2C。Google API接受这两个版本,但我必须使用的API只接受Javascript JQuery ajax停止数据的URL编码,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在编写一个webapp,必须从几个api中获取数据才能向用户显示。因此,在第一步中,用户可以从第一个api中选择几个位置。在那里我得到了坐标,比如1.2345,6.7890,然后我将它们保存到一个数组中。现在我想把它们传递给路由api,参数必须是 问题是jQuery对数据进行编码并将数据转换为%2C。Google API接受这两个版本,但我必须使用的API只接受 myPlaces = ["1.2345,6.7890", "2.3456,7.8901"] $.ajax({ url :
myPlaces = ["1.2345,6.7890", "2.3456,7.8901"]
$.ajax({
url : "example.com",
datatype : "json",
jsonp : "jsonp",
data : {
loc : myPlaces
}
});
如何告诉jQuery不要对数据字符串进行编码?根据上面的评论,您必须手动编写输入字符串,因为jQuery的参数序列化将始终自动对逗号进行URL编码 幸运的是,这不应该太令人头痛:
myPlaces=[“1.2345,6.7890”,“2.3456,7.8901”];
//字符串合成函数
var placesString=myPlaces.reduce(函数(str,current){
返回str+“loc=“+电流;
}, "");
//然后在ajax调用中使用它
$.ajax({
网址:“example.com”,
数据类型:“json”,
jsonp:“jsonp”,
数据:placesString,
});代码>是的,它在不同的浏览器中似乎编码不同(Firefox不编码,但Chrome编码)。请尝试直接将坐标映射到url:
myPlaces = ["1.2345,6.7890", "2.3456,7.8901"];
var myPlacesQueryString = "";
$.each(myPlaces, function(i, value) {
myPlacesQueryString += "location=" + value;
if (i < myPlaces.length - 1) {
myPlacesQueryString += "&";
}
});
$.ajax({
url : "example.com/route?" + myPlacesQueryString,
datatype : "json",
jsonp : "jsonp"
});
myPlaces=[“1.2345,6.7890”,“2.3456,7.8901”];
var myPlacesQueryString=“”;
$.each(myPlaces,function(i,value){
myPlacesQueryString+=“location=“+值;
如果(i
最坏情况下,您可以手动构造查询字符串,而不是将对象传递给数据