为什么我的JSON没有正确地从PHP返回?

时间:2016-05-31 20:13:12

标签: javascript php jquery json

我正在从JS文件到另一个文件中的PHP函数进行Ajax调用。虽然Ajax调用是成功的,因为它保存了记录,但我没有收回正确的数据进行处理。相反,我从页面获取html。我需要能够检查状态,以便我可以在成功时继续前进,或者如果有任何类型的错误没有保存记录,则通知用户。这是我的JS代码。

try {
        $data = json_decode($_REQUEST['dtData']);
        $values = $data[0];
        $ordNbr = $values->ordnbr;
        $saveTick = Do something and save the ticket
        // if ($saveTick->status === "SUCCESS") {
        $this->getSalesData($values, $ordNbr);
        echo json_encode($saveTick);

    } catch (Exception $e) {
        $saveTick = array('status' => 'FAILED');
        echo json_encode($saveTick);
    }

在通过PHP处理后,我正在尝试返回我的JSON,以便我可以检查它。在我尝试/捕捉我有这个

 <html>
<head>
<title></title>

<style>

    TR.main_header {
        background-color:black; 
        color:white;
    }
    TR.main_footer {
        background-color:#396B42; 
        color:white;
    }
    div.error {
        color: red;
        font-weight: bold;
    }

</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr class="main_header">
        <td align="left" width="25%"></td>
        <td align="right" width="25%">Tuesday May 31,2016</td>

    </tr>
</table>
                                                                           [{"shipdate":"2016-05-31","ordnbr":"BR549","custid":"CUST","deltcktno":"D333423","siteid":"Some Site","dttype":"REG","IsExport":true,"slsperid":"","slsname":"Some Sales","slsemail":"me@me.com"}]{"status":"SUCCESS","message":"Successfully called","data":null,"count":0}
</body>
</html>

这是从我上面的console.log返回到控制台的内容

{{1}}

1 个答案:

答案 0 :(得分:2)

摆脱auto_prepend_file中的auto_append_filephp.ini设置。如果它们只是定义了变量和函数,那么这些将是安全的,但如果它们输出HTML,它们将干扰应该返回其他类型输出的脚本,例如JSON或XML。

您必须重新编码所有其他脚本以明确要求其页眉和页脚,而不是依赖此PHP设置。