我知道这里有很多这个问题。我花了一整天的时间来搜索同一个问题。没有什么可以回答我的!所以,请不要关闭这句话,我只是在重复。
我有一个与另一个 js 文件在同一页面上调用的 PHP 文件,这个 PHP 文件对一个数组进行编码并在同一页面上回显它(即从 ajax 请求调用它时),如下所示:
$data = array(
"status" => $status,
"message" => $message,
);
echo json_encode($data);
$status 和 $message 的值是由它们上面的一些条件决定的(这些条件在这里并不重要)。这个 PHP 文件在索引文件的顶部被调用,这意味着 JSON 在<!doctype html>
标签之前被回显。现在,在 js 文件中,这是我尝试处理这个 JSON 的部分:
$.post($formUrl, $formData, function(data) {
$data = $.parseJSON(data);
alert($data.status);
});
不要担心变量,它们不是问题。这里唯一的问题是$data = $.parseJSON(data);
零件。当我运行这段代码时。成功后什么都没有发生,但是在 PHP 文件中,有一个插入到数据库的命令可以正确执行。一切正常,除了这个 JSON,我无法得到它!当我尝试这个时:
$.post($formUrl, $formData, function() {
$str = '{"a":1,"b":2,"c":3,"d":4}';
$data = $.parseJSON($str);
alert($data.a);
});
它按预期工作,它发出警报 1。所以我认为问题在于,$.parseJSON()
无法解析其中包含 JSON 的 HTML 文件,因为正如我告诉你的那样,PHP 文件在 < !doctype html >
.
我现在好绝望。有人可以帮忙吗?