0
這裏是明文密碼Node.js的Express.js並不總是發送有效的JSON
app.post('/v1/sessions' function(req,res){
res.send({id:1234});
});
出於某種原因,JSON響應回來這樣
OK{ id: 1234}
爲什麼是OK嗎?
編輯
好了,所以這裏是我的所有代碼。我不知道它會發送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 == '[email protected]' && req.body.password == 'testpass'){
res.send(200, JSON.stringify({token:{id:'longstring',email:'[email protected]'}}));
} 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');
這不是你的全部代碼。您正在某處發送「確定」。 – Brad
當你說「回覆像這樣回來」時,你如何確定?你使用什麼工具。 「確定」是對應於200狀態碼的文本,因此有些工具可能會將其放在那裏。您是否嘗試過'curl'或查看webkit開發工具網絡選項卡? –
我在調試Android手機瀏覽器時在weinre中看到它。一切工作正常在鉻,但沒有在Android本機。在網絡視圖中,您可以看到標題,有時內容可以正常顯示,有時不會顯示。當它確定瀏覽器認爲它是MIME類型application/octet-stream – whitehead1415