php - 使用 jQuery 发布的 AJAX 数据包含引号?

标签 php javascript jquery

我已经为此苦苦挣扎了一段时间,不知何故,JQuery 转义了文本上的引号,没关系,但是当字符串显示给用户时,我希望按照用户编写的方式显示,这里是简化代码:

测试.PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title></title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
</head>
<body>
    <form id="testform" action="testoutput.php" method="post">
        <input type="text" name="data" id="data" />
        <input type="submit" />
    </form>

    <div name="output" id="output"><b>The Output</b></div>

<script>
$(document).ready(function() {
    $('#testform').submit(function () {
        $data = $('#data').val();
        $.ajax({
            url: 'testoutput.php', 
            type: 'POST',
            data: "data=" + $data,
            success: function(response) {
              $('#output').html(response); 
            }
          });
        return false;
    });
});
</script>

</body>
</html>

测试输出.php

<?php
    $data = $_POST['data'];

    echo $data;
?>

现在,如果我在表单中写下类似 "Ok" 的内容,输出将显示 \"Ok\" 我尝试过如下操作:

$data = escape($('#data').val());

为了避免在发送请求时出现引号,但不知何故,ajax 请求也逃避了这一点,我是否在这里遗漏了一些东西?

我不介意转义,但是为什么 JQuery 会这样做,为什么这种编码/解码/转义的事情会在后台发生?

最佳答案

stripslashes 可能是您需要的工具,但请确保在删除斜杠之前测试魔术引号是否打开。

如果您曾经将代码传输到具有不同配置的新系统,那么您将需要花费大量时间来跟踪它。

if (get_magic_quotes_gpc()) {
    // Do your stripslashes here.
}

http://php.net/manual/en/function.get-magic-quotes-gpc.php

关于php - 使用 jQuery 发布的 AJAX 数据包含引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290257/

相关文章:

php - Yii 模型不获取新添加的列,Mysql 缓存问题

php - 将图像裁剪或蒙版成圆形

javascript - Service Workers - 有选择地选择资源

javascript - JavaScript 中的 _.defer 和 _.throttle 是什么?

javascript - 如何使用 Jquery/css 更改另一个 td 中 td 的宽度?

javascript - 如何在屏幕的正中心制作响应式图像并在所有边上制作相等的边距?

php - 为什么不在 NFS 卷上存储 PHP SESSION?

php - 使用 HTML-ENTITIES 字符集替代 mb_convert_encoding

javascript - 每次刷新仅运行一个 jQuery 事件

javascript - 如何更改 html 输入中提供的 datetime-local 的模式