JQuery ajax stop urlencode of data
JQuery ajax stop urlencode of data
我正在编写一个Web应用程序,必须从多个API获取数据以向用户显示。因此,在第一步中,用户可以选择我从第一个 API 获得的几个位置。在那里,我得到像 1.2345,6.7890 这样的坐标,并将它们保存到一个数组中。现在我想将它们传递给路由 api,并且必须 http://example.com/route?location=1.2345,6.7890&location=2.3456,7.8901 参数。
问题是 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"];
//string composition function
var placesString = myPlaces.reduce(function(str, current){
return str + "loc=" + current;
}, "");
//then use it in your ajax call
$.ajax({
url : "example.com",
datatype : "json",
jsonp : "jsonp",
data : 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"
});
相关文章:
- Ember Data DS.Model's set函数不起作用
- Extending Ext.data.NodeInterface
- HighChart : Usage of setData
- 如何获取$data.Entity的密钥
- jQuery可以't获取data-*属性值,返回undefined
- Query JS Ext.data.Store
- 设置'这'在React with Inverse Data Flow中
- Google Data API上的OOP Javascript回调方法
- 如何获取`data-listid`属性值
- JSTree's data.rslt.obj.text()返回一个文本数组,而不是所需节点的文本
- Difference between methods of defining JavaScript 'class
- KOValidation在错误消息中获取可观察值、$index()、$data等
- ko.com在foreach$data变量上添加了write函数
- Javascript、jquery、主干网、splunk:on(“change”、{data}、handler)导致Ty
- 为什么我在下面的..of循环中得到意外令牌
- 为什么toStaticHTML删除data-*属性
- javascripts version of jquery.data()
- JQuery ajax stop urlencode of data
- replace url of Ext.data.store
- Get First Span of a <div> using the data-id