jQuery Json响应打印html标签

时间:2017-10-30 16:09:38

标签: php jquery ajax

当我这样做时:

<html>
<head>
</head>
<body>
    <?php
    $value = isset($_GET['send_request']) ? $_GET['send_request'] : false ;

    if ($value) {
        echo $value;
        return;
    }
    ?>


    <a href="javascript: test()">A</a>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script type="text/javascript">

        function test() {

            // data to send
            var data = { send_request: 'Yes'}

            request = $.ajax({
                method: 'get',
                data: data
            });

            request.done(function(response){
                console.log(response);
            });
        }
    </script>
</body>
</html>

在我得到的控制台中:

<html>
<head>
</head>
<body>
    Yes

为什么会这样?

2 个答案:

答案 0 :(得分:3)

这里的错误是你的PHP代码在你输出这个部分后执行:

const x = {
 a: c(), // returns an object
 b: {
   x: {...},
   y: () => {...}
 } // is an object
}

// is this even doable
{< some magic stuff >} = x
typeof a === typeof b //true

将php代码移动到页面顶部,它将修复此问题:) 请记住,当你执行php脚本时,php不会忽略html,而是考虑输出并继续执行:)

答案 1 :(得分:0)

最佳做法是将PHP代码移动到单独的PHP文件中,并在ajax函数的url选项中指定它的路径。那个新的PHP文件当然不应该在PHP代码之前包含 HTML ,如前所述。