【发布时间】:2014-01-17 15:44:18
【问题描述】:
我使用 Express 创建了一个 Node.js 服务器,配置非常简单:
var express = require('express');
var app = express();
app.configure(function() {
app.use(express.urlencoded());
app.use(express.json());
app.use(express.cookieParser());
});
app.post('/login', function(req, res) {
res.json({foo: 'bar'});
});
app.listen(3000);
经过检查,以下是 Firefox 记录的关于对/login 路由的网络请求的数据:
Request URL: http://localhost:3000/login
Request Method: POST
Status Code: HTTP/1.1 200 OK
这里是请求标头:
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Pragma: no-cache
Origin: null
Host: localhost:3000
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 36
Connection: keep-alive
Cache-Control: no-cache
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Accept: application/json, text/javascript, */*; q=0.01
据我所知,到目前为止,一切似乎都很好。然而,在我的 jQuery 代码中,fail() 回调总是被调用:
$.ajax({
type: 'POST',
url: 'http://localhost:3000/login',
data: {foo: 'bar'},
dataType: 'json'
})
.done(function() {
console.log('done');
})
.fail(function() {
console.log('fail');
});
这是我的响应标头的样子:
X-Powered-By: Express
Transfer-Encoding: chunked
Date: Fri, 17 Jan 2014 07:12:01 GMT
Connection: keep-alive
如何配置我的 Express 或 jQuery 设置以正确处理 JSON 响应?
【问题讨论】:
-
尝试修改您的 jQuery AJAX 调用,如 this 并检查您遇到的错误。
-
@srvikram13 进行了更改,结果相同
标签: jquery json node.js express http-headers