【问题标题】:jQuery ajax escapes my data, how can I prevent this?jQuery ajax 转义了我的数据,我该如何防止这种情况发生?
【发布时间】:2025-12-31 18:55:01
【问题描述】:

假设我有一个表单输入,当用户输入单词“TEST”时。我采用该表单值并将其发送到带有 ajax 的 API:

var form_value = $('input').val();
$.ajax({
        url: 'ajax_handler.php',
        type: 'POST',
        dataType: 'json',
        data: {
            form_value: form_value,
        }
    })

在文件ajax_handler.php 中,我做的第一件事是var_dump($_POST['form_value']);

然后结果变为:string(8) "\"TEST\""。这是用户最初编写的内容的转义版本。为什么?我在ini文件中关闭了php魔术引号设置,所以不是这样。似乎 AJAX 自动转义了它。

如何防止 jQuery ajax 转义我的值?我希望它保持不变。

【问题讨论】:

  • 试试 dataType: 'text',
  • 嗯,你需要解析它,例如json_decode($_POST['form_value'], true)
  • 遗憾的是,这些建议都没有奏效。

标签: php jquery ajax escaping


【解决方案1】:

试试这个,

var form_value = $('input').val();
var rawData={"form_value":form_value}; //your desired format, however you want not to be altered
var finData= JSON.stringify(rawData);
$.ajax({
    url: 'ajax_handler.php',
    type: 'POST',
    dataType: 'json',
    data: finData
})

【讨论】:

  • 但是函数 JSON.stringify 在引号前添加了斜线。
最近更新 更多