我正在尝试通过AJAX数据传递编码值,但它会继续对它进行编码。如何防止AJAX中的编码?
我的Ajax代码:
$.ajax({
url: form.attr("action"),
data: {
'at': ajax_params['at'],
},
type: form.attr("method"),
success: function (data) {
alert('Success');
}
});
ajax_params['at'] = 2%2C+4
中的值
其中2和4是值,%2C是逗号,+是空格。使用多个逗号时,该值可以更长。
提交AJAX后的当前输出:
at = 2%252C%2B4
预期输出:
at = 2%2C + 4
答案 0 :(得分:1)
您可以使用字符串设置data
:
data: "at=" + ajax_params['at'],
或对其进行解码,以便在再次对其进行编码时不会进行双重编码:
data: {
'at': decodeURIComponent(ajax_params['at'])
},
旁注:在文字的属性名称中或在at
上查找属性时,无需为属性ajax_params
使用方括号和引号:
data: {
at: decodeURIComponent(ajax_params.at)
},
at
并不是JavaScript中的关键字或保留词(即使是从2009年ES5起,也是这样-启用了在该语言中使用未引用关键字的属性创建和访问表达式)。< / p>
答案 1 :(得分:0)
在发送前对其进行解码
data: {
at: decodeURIComponent(ajax_params['at'])
},