我有一个文本字段,它通过 AJAX 和 POST 请求通过 JSON 和 jQuery(用 .toJSON
函数包装)发送到我的服务器。在 PHP 方面,我正在做 json_decode
。
一切正常,但如果我在其中放入和号 (&),它会拆分 POST 参数,因此它在 PHP 端不完整(至少 var_dump($_POST)
正在写出)。
toJSON 和 json_decode 不应该完成所有工作(转义)吗?我尝试了 encodeURIComponent
、& 到 &
、& 到\u0026
,但它不起作用。
我做错了什么?
AJAX 调用
function execute() {
this.setupUrl();
return $.ajax({
type: this.requestMethod,
data: this.getDataParams(),
url: this.url
});
}
function getDataParams() {
if(this.data != undefined) {
if(this.requestMethod == 'POST' || this.requestMethod == 'PUT') {
return "data=" + $.toJSON(this.data);
} else if(this.requestMethod == 'GET') {
return this.data;
}
} else {
return null;
}
}
最佳答案
答案很简单:为data
使用对象而不是字符串。
例如像这样改变你的功能:
return {data: $.toJSON(this.data)};
这在任何情况下都有效,无论您使用的是 POST 还是 GET。
关于php - POST 中 JSON/PHP 中的 & 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10874465/