【问题标题】:express.js app throws no responseexpress.js 应用程序没有响应
【发布时间】:2013-06-27 11:50:19
【问题描述】:

这是一个快速服务器代码:

var express = require('express');
var mysql = require('mysql');
var app = express();

app.use(express.bodyParser());
app.use(express.static('public'));
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'someuser',
  password : 'somepassword',
  database: 'some_database'
});

connection.connect();
app.get('/users/authenticate', function(req, res){
res.setHeader('Content-Type', 'application/json');
res.send({test:"test"});
res.end();

});

app.listen(3000);
console.log('Listening on port 3000');

现在,当我向此 API 发出获取请求时,虽然响应代码为 200 ok,但我在网络控制台的响应选项卡中什么也得不到。请阐明一些观点。我希望这里有 JSON 数据。 这是我在控制台中得到的:

【问题讨论】:

  • i get nothing in response tab of network console though it shows a OK response in network console 嗯,是哪一个?
  • 响应码为 200 ok 但没有收到数据。我希望这里有一个 json 数据。
  • 看起来您正在执行一个跨域请求(您的 HTML 页面是从 localhost 提供的,但您的 AJAX 请求是发送到api.avcls.com:3000)。你的控制台说什么?

标签: javascript jquery node.js express


【解决方案1】:

尝试使用:

app.get('/users/authenticate', function(req, res){
    res.json({foo:'bar'});
});

此外,如果您跨不同域执行此操作,则需要设置 CORS。

var allowCrossDomain = function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
}

app.configure(function() {
    app.use(allowCrossDomain);
}

...如果您尝试从 localhost 测试 CORS,则需要在禁用某些安全性的情况下打开 Chrome。如果您使用的是 Mac,则使用以下命令完成。请确保 Chrome 在运行之前已关闭。

`open -a Google\ Chrome --args --disable-web-security`

【讨论】:

  • 好的,按照您的描述为 CORS 进行了设置,并且成功了。现在我的问题是,如果服务器不接受请求,为什么它会返回 200ok?
  • 说实话,我不知道。我之前遇到过同样的问题,只是认为是浏览器出了问题。
  • 所有的爸爸-在这里帮助我们:)
【解决方案2】:

代码没问题。我从浏览器和使用

都得到 {test:"test"}
curl http://localhost:3000/users/authenticate

【讨论】:

  • 这个 api 驻留在远程服务器上。会有什么不同吗?
  • 真的不能说有什么问题,你是在点击 /users/authenticate uri 吗?
  • 是的。当我用浏览器点击相同的内容时,它会显示我想要的结果。但是当通过 ajax 请求完成时,它不会返回任何响应!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
相关资源
最近更新 更多