jQuery POST to Node.JS Fails
jQuery POST to Node.JS Fails
我试图通过熟悉node来扩大我的视野.js(我的职业是.NET开发人员),并且我在我认为是一个简单的POST示例时遇到了麻烦。我确实有jQuery的经验,所以node.js是我正在构建的这个示例网站中相对未知的一个。
节点.JS服务器代码:
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 包含一个数字(例如,2)
- fail() 中的文本状态只是"错误"
您收到错误的原因是因为您提供了 res.send()
中的数字。这样做会将值作为 HTTP 状态代码发送,而不是响应正文。
res.send(200); -> HTTP 200 OK
res.send('200'); -> 200
send()
方法接受两个参数。如果您提供一个并且它是一个数值,那么它将被解释为要发送的 HTTP 状态代码。您可能会发现更适合您正在尝试做的事情的是 res.json()
.
app.post('/path', function(req, res) {
res.json(request.body.page);
});
否则,强制将数字作为字符串发送:
app.post('/path', function(req, res) {
res.send('' + request.body.page);
});
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何更改<svg>标记为<img>用js标记
- 如何使用 node.js 比较两个 json 数组
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- jQuery POST to Node.JS Fails
- Tumblr.js API -- require() fails
- Angular js http get fails