POST 中 JSON/PHP 中的 & 符号

sve*_*ija 5 php jquery post json escaping

我有一个文本字段,它通过.toJSONAJAX 和 POST 请求通过 JSON 和 jQuery(用函数包装)发送到我的服务器。在 PHP 方面,我正在做json_decode.

一切正常,但如果我在其中放入与号 (&),它会分割 POST 参数,因此它在 PHP 端不完整(至少是var_dump($_POST)写出的内容)。

toJSON 和 json_decode 不应该完成所有工作(转义)吗?我试过了encodeURIComponent& to && to \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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 3

答案很简单:使用对象data代替字符串。

例如,像这样改变你的功能:

return {data: $.toJSON(this.data)};
Run Code Online (Sandbox Code Playgroud)

这在任何情况下都有效,无论您使用的是 POST 还是 GET。