javascript - JSON 无法接受 json_encode() 数组

标签 javascript php ajax json

我正在从我的 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/

相关文章:

javascript - 在 head 标签中压缩代码/脚本

php - php中的表类

javascript - 前端JavaScript加载 View 的设计模式

javascript - Socket.io 事件监听器在我的 React 类组件中自发触发,没有服务器输出

javascript - 在没有 Transpiler/Bundler 步骤的情况下使用 ES6 模块

php - 如何在 Laravel 4 中查询除一个以外的所有内容?

php - 我需要通过代理,(从正在运行的 fsockopen 代码获取远程视频文件的大小)

javascript - 如何使用ajax函数发送表单而不刷新页面,我错过了什么?我必须为此使用rest-framework吗?

javascript - 将 javascript 动态插入到使用 document.write 的 HTML 中

javascript - 选择时替换div内容