【发布时间】:2013-07-01 19:56:37
【问题描述】:
这里是快递代码
app.post('/v1/sessions' function(req,res){
res.send({id:1234});
});
由于某种原因,json 响应像这样返回
OK{ id: 1234}
为什么那里没问题?
编辑
好的,这就是我所有的代码。我看不出它会将 OK 发送到哪里。
var express = require('express');
var app = express();
app.enable('trust proxy');
app.use(express.bodyParser());
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
app.post('/v1/sessions', function(req, res) {
if(req.body.email == 'testuser@captusr.com' && req.body.password == 'testpass'){
res.send(200, JSON.stringify({token:{id:'longstring',email:'testuser@captusr.com'}}));
} else {
res.send({code:403, error:"Invalid email or password"});
}
});
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, Origin, Accept');
res.header('Access-Control-Allow-Credentials', 'true');
if (req.method.toLowerCase() === 'options') {
res.send(200);
} else {
next();
}
});
app.listen(3000);
console.log('Listening on port 3000');
【问题讨论】:
-
这不是您的全部代码。您正在某处发送
OK。 -
当您说“响应像这样返回”时,您究竟是如何确定这一点的?你用的是什么工具。 “OK”是与200状态码对应的文本,所以有些工具可能会把它放在那里。您是否尝试过
curl或查看 webkit 开发工具网络选项卡? -
我在为android移动浏览器调试时在weinre中看到了它。在 chrome 中一切正常,但在 android native 上却没有。在网络视图中,您可以看到标题,有时内容会正常,有时则不会。当它正常时,浏览器认为它是 mime 类型 application/octet-stream
标签: json node.js express http-headers