Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery发布到Node.JS失败_Javascript_Jquery_Node.js - Fatal编程技术网

Javascript jQuery发布到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

我正试图通过熟悉node.js来扩展我的视野(我的职业是.NET开发人员),但我认为这只是一个简单的POST示例。我确实有使用jQuery的经验,所以在我正在构建的这个示例网站中,node.js对我来说是相对未知的

node.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包含一个数字(例如, (二)
  • 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)
我能够获得成功的响应,但您回答了后续问题:为什么。谢谢