JSON Вот экспресс-кодNode.js Express.js не всегда посылает правильный
app.post('/v1/sessions' function(req,res){
res.send({id:1234});
});
По какой-то причине ответ JSON возвращается как этот
OK{ id: 1234}
Почему ОК там?
EDIT
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, поэтому некоторые инструменты могут его установить. Пробовали ли вы «завиток» или смотрели на вкладку сети инструментов разработки webkit? –
Я видел это в weinre, когда я отлаживал браузер для Android. Все работает отлично в хроме, но не на родной Android. в представлении сети вы можете видеть заголовки, и иногда контент будет иметь ок, а иногда и нет. Когда это было хорошо, браузер подумал, что это приложение типа mime/octet-stream – whitehead1415