【发布时间】:2016-06-08 18:53:52
【问题描述】:
服务器:云服务器,Ubuntu 15.04 x64。 nginx已安装监听80端口。
SERVER 程序:使用 NodeJS 编写,简单地以 json 格式响应。像 { msg : "done" }
客户端(使用 React 和 JQuery 的 HTML 页面):简单地向服务器请求 json 数据。
问题出在客户端
// 1)
this.serverRequest = $.get({url:'https://api.github.com/users/octocat/gists', success:function(ret) {
// 2)
//this.serverRequest = $.get({url:'http://my_server_ip_address:7534/test', success:function(ret) {
alert("ok done");
}.bind(this), error:function(e) {
alert("Error : " + e);
}.bind(this)});
我对 1) 请求没有任何问题。我确实收到了一些数据。 但是对于 2) 请求,会调用 'error' 函数并执行 'alert('Error :' + e);'仅显示“错误:[object Object]”。它没有显示任何有用的信息..
所以我认为我的 nodejs 服务器程序有问题,我继续寻找答案。我想我会尝试所有可能的答案..
1) 设置 iptable 接受端口 7534。 2) 让 nodejs 服务器监听 0.0.0.0 3) 使用 res.json().. res.jsonp()
如果我尝试使用 Chrome,我可以看到 {msg : "done"}。所以我猜我的 nodejs 服务器可以工作。
【问题讨论】:
-
接口是否使用https?您是否在 JavaScript 控制台 (F12) 中看到任何错误?
-
首先,您会收到错误消息
Error: [object Object ],因为它是 js 中的基类型转换。其次,在 nginx 中可能会安装防火墙,但不确定,例如您在 Chrome 中收到了正确的数据。收到错误数据时使用什么浏览器 -
不,它确实使用 https。它使用http。
-
blex :不,它确实使用 https。它使用 http。控制台中没有显示错误。 Dmitry :所有浏览器都正确接收数据。我使用 Chrome 打开包含 javascript 代码的客户端 html 文件。
-
Error : [object Object]因为 e 是一个对象。而{msg : "done"}不是 json 它是一个对象。
标签: javascript jquery json reactjs