这是一个快速服务器代码:
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发出get请求时,我在网络控制台的响应选项卡中得不到任何内容,尽管响应代码为200 ok。请说清楚。我希望这里有JSON数据。 这是我在我的控制台中得到的:
答案 0 :(得分: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);
}
...如果您尝试从本地主机测试CORS,则需要在禁用某些安全性的情况下打开Chrome。如果您使用的是Mac,则可以使用以下命令完成。只需确保Chrome在运行之前已关闭。
`open -a Google\ Chrome --args --disable-web-security`
答案 1 :(得分:0)
代码没问题。我从浏览器和
获得{test:“test”}curl http://localhost:3000/users/authenticate