我正在从我的 PHP 文件发送一个简单的数组,
//example.php
if(0){
return json_encode(['status'=>false, 'message'=>'Please enter a username']);
}
在我的 ajax.js
中,一切都正常工作,包括 XHR 对象和事件处理程序。除了这一行之外,一切都找到了。
// ...
var x = JSON.parse(xmlhttp.responseText);
console.log(x);
// ...
但是,我收到以下错误。
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
我不明白这个。所有代码都是正确的。在使用 JSON 之前,我曾经使用 echo 'ok'
从 PHP 传递值,然后执行 if(xmlhttp.responseText) == 'ok
并且工作正常,但是不使用 json
最佳答案
两个问题:
您使用
return
,它不会在输出中打印任何内容,而echo
实际上会打印文本。尝试使用:if(0)
总是会失败,因此您将永远打印任何内容。您应该使用if(1)
作为简单测试。您的 PHP 代码可能会失败,但在这种情况下,您最好还返回 JSON 格式的错误消息。
类似于:
if(test) { //test means you can do the action
//do action
echo json_encode(['return' => 'ok','result' => 'foobar']);
} else {
echo json_encode(['return' => 'error']);
}
关于javascript - JSON 无法接受 json_encode() 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28619214/