Jquery ajax whitespace和&符问题

时间:2015-10-05 08:52:19

标签: jquery ajax encoding character-encoding

我正在做这样的事情

var apiOptions = {
    url: url,
    dataType: 'jsonp',
    type: "GET",
    success: success
};

if(dataOptions) {
    apiOptions.data = {
        key: self.settings.key,
        limit: self.limit,
        address: dataOptions.address,
    };
}
$.ajax(apiOptions);

它适用于所有事情,除非我有" &安培; ",所以在&符号周围留出空间。因此,请求参数看起来像"D+&+D,+enterprisess"D+%26+D%2C。然后在服务器上返回404。

知道该怎么做吗?

2 个答案:

答案 0 :(得分:2)

对于ajax中包含空格和特殊字符的传递参数,您可以使用escape和unescape函数。

var test = 'Exemplae Actão ç @#$%$ ';
var testEscape = escape(test);
console.info(test , testEscape ,  unescape(testEscape ));

这解决了你的问题

答案 1 :(得分:1)

尝试将String.prototype.replace()RegExp() /\s(&)\s/

一起使用

var data = "123 & abc";
var res = data.replace(/\s(&)\s/, "$1");
console.log("data:", data,"res:", res)