我需要传递给请求的很多JSON数据:
$.ajax({
type: "POST",
url: "http://"+HOST+"/users/rankings",
data: "friends="+JSON.stringify(friendsArr),
success: function(response){
$("#rankings").html(response);
}
});
friendsArr是JSON格式的对象数组。问题是某些对象的数据带有“+”且无法正确编码。它在服务器端作为“”,数据搞砸了。我是否真的必须遍历所有数据并分别编码每个值?必须有一个更简单的方法。
答案 0 :(得分:4)
您应该可以使用javascript escape
函数来解决此问题。只需在发送之前转义数据和网址即可。
答案 1 :(得分:4)
我会尝试使用$.post
方法与原始$.ajax
方法,让jQuery为您处理工作:
$.post( "http://"+HOST+"/users/rankings",
{ friends: JSON.stringify(friendsArr) },
function(data){
$("#rankings").html(response);
}
);
此外,由于您只能通过AJAX POST
到同一个域的地址,为什么不使用"/users/rankings"
作为您的网址与"http://"+HOST+"/users/rankings"
答案 2 :(得分:1)
不是那么容易:
$.ajax({
type: "POST",
url: "http://"+HOST+"/users/rankings",
data: "friends="+escape(JSON.stringify(friendsArr)),
success: function(response){
$("#rankings").html(response);
}
});