Javascript jQuery发布到Node.JS失败
我正试图通过熟悉node.js来扩展我的视野(我的职业是.NET开发人员),但我认为这只是一个简单的POST示例。我确实有使用jQuery的经验,所以在我正在构建的这个示例网站中,node.js对我来说是相对未知的 node.JS服务器代码:Javascript jQuery发布到Node.JS失败,javascript,jquery,node.js,Javascript,Jquery,Node.js,我正试图通过熟悉node.js来扩展我的视野(我的职业是.NET开发人员),但我认为这只是一个简单的POST示例。我确实有使用jQuery的经验,所以在我正在构建的这个示例网站中,node.js对我来说是相对未知的 node.JS服务器代码: var express = require('express'); var app = express(); app.configure(function() { app.use(express.bodyParser()); app.us
var express = require('express');
var app = express();
app.configure(function() {
app.use(express.bodyParser());
app.use(app.router);
app.use(express.logger());
});
app.use(express.static(__dirname + '/public/PRB_Presentation'));
app.post('/GetPage', function(request, response){
console.log(request.body.pageNumber);
response.send(request.body.pageNumber);
});
var port = 80;
app.listen(port);
console.log('Listening on port: ' + port);
我的客户端jQuery逻辑:
function getPage(pageNumber){
$.ajax({
url: '/GetPage',
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify({ pageNumber: pageNumber })
}).done(function(data, textStatus, jqXHR) {
console.log("Success: " + data);
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log("Error: " + errorThrown);
}).always(function() {
console.log("Done!");
})
;
};
在node.js服务器运行时,我确实看到了正确发送到控制台窗口获取输出的页码,但这是我从客户端获得的:
错误:未知完成了 我想我在这里做了一些非常简单的错误,但我不太明白 编辑
- request.body.pageNumber包含一个数字(例如, (二)
- fail()中的textStatus只是“error”
res.send()中提供了一个数字。这样做会将值作为HTTP状态代码而不是响应主体发送
res.send(200); -> HTTP 200 OK
res.send('200'); -> 200
send()
方法接受两个参数。如果您提供一个,并且它是一个数值,那么它将被解释为要发送的HTTP状态代码。您可能会发现更适用于您尝试执行的操作的是res.json()
否则,强制将数字作为字符串发送:
app.post('/path', function(req, res) {
res.send('' + request.body.page);
});
出现错误的原因是您在res.send()
中提供了一个数字。这样做会将值作为HTTP状态代码而不是响应主体发送
res.send(200); -> HTTP 200 OK
res.send('200'); -> 200
send()
方法接受两个参数。如果您提供一个,并且它是一个数值,那么它将被解释为要发送的HTTP状态代码。您可能会发现更适用于您尝试执行的操作的是res.json()
否则,强制将数字作为字符串发送:
app.post('/path', function(req, res) {
res.send('' + request.body.page);
});
几个问题:request.body.pageNumber中有什么?除此之外,在您的fail()
处理程序中,jqXHR
和textStatus
包含哪些内容?您对jqXHR中的哪些内容感兴趣?responseText为空,responseJSON未定义。几个问题:request.body.pageNumber中有什么?除此之外,在您的fail()
处理程序中,jqXHR
和textStatus
包含哪些内容?您对jqXHR中的哪些内容感兴趣?responseText为空,responseJSON未定义。完美!通过玩它,我自己发现通过将其切换到res.send(request.body)
我能够获得成功的响应,但您回答了后续问题:为什么。谢谢你!通过玩它,我自己发现通过将其切换到res.send(request.body)
我能够获得成功的响应,但您回答了后续问题:为什么。谢谢