php - POST 中 JSON/PHP 中的 & 符号

标签 php jquery json post escaping

我有一个文本字段,它通过 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/

相关文章:

javascript - 在 Postman 上使用分页解析正文

php - Braintree 付款托管资金

javascript - 遍历每个元素并只获取直接在节点中的内容

php - 拉维尔 5 : Global Auth $user variable in all controllers

javascript - 根据选项类别而不是值显示不同的内容

jQuery 使用从 ajax 插入的元素

php - 使用 php header 功能播放 mp3 是阻塞页面

javascript - 使用 jQuery 和 HTML5 文件 API 显示文件内容

android - 具有 Drupal 后端和登录的 native Android 应用程序

javascript - 如何在 Javascript 中解析 JSON 文件?