使用JQuery的AJAX POST请求不是urlencode'+'

Ton*_*ony 5 jquery encoding json

我需要传递给请求的很多JSON数据:

$.ajax({
                type: "POST",
                url: "http://"+HOST+"/users/rankings",
                data: "friends="+JSON.stringify(friendsArr),
                success: function(response){
                    $("#rankings").html(response);
                }
            });
Run Code Online (Sandbox Code Playgroud)

friendsArr是JSON格式的对象数组.问题是某些对象的数据带有"+"且无法正确编码.它在服务器端作为"",数据搞砸了.我是否真的必须遍历所有数据并分别编码每个值?必须有一个更简单的方法.

Dou*_*ner 4

我会尝试使用该$.post方法与原始方法$.ajax,并让 jQuery 为您处理工作:

$.post( "http://"+HOST+"/users/rankings",
    { friends: JSON.stringify(friendsArr) },
    function(data){
        $("#rankings").html(response);
  }
);
Run Code Online (Sandbox Code Playgroud)

此外,由于您只能POST通过 AJAX 访问同一域上的地址,因此为什么不只用作"/users/rankings"您的 URL 而不是用作 URL。"http://"+HOST+"/users/rankings"