Javascript JQuery ajax停止数据的URL编码

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 :

我正在编写一个webapp,必须从几个api中获取数据才能向用户显示。因此,在第一步中,用户可以从第一个api中选择几个位置。在那里我得到了坐标,比如1.2345,6.7890,然后我将它们保存到一个数组中。现在我想把它们传递给路由api,参数必须是

问题是jQuery对数据进行编码并将数据转换为%2C。Google API接受这两个版本,但我必须使用的API只接受

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
最坏情况下,您可以手动构造查询字符串,而不是将对象传递给
数据