无法向节点服务器发出post请求



我正在使用Node JS构建一个简单的服务器。我用的是快递。我想使用JQuery测试post请求,但我一直无法成功。我查了一下这个问题,许多回复提到了一个跨原产地问题。我听从了关于这个问题的每一条建议,但我仍然无法成功。下面是我的服务器代码:

var express=require("express");
var app=express();
var cors = require('cors')
app.use(cors());
var bodyParser = require('body-parser-json')
app.use(bodyParser.json())
var allowCrossDomain = function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
}
app.use(allowCrossDomain);
app.post('/', function(req, res, next) {
    console.log(req.body.base);
});
app.get('/', function(req, res) {
    console.log("ok");
});
/*Run the server.*/
app.listen(3000,function(){
    console.log("Working on port 3000");
});

我试过使用核心模块,也手动启用CORS。还没有。

这是我的前端测试代码:

function makePost() {
    $.post( "secret.compute.amazonaws.com:3000/", { base: "Hello" })
    .done(function( data ) {
        alert( "Got it" );
    })
    .fail(function( err ) {
        console.log(err);
    });
}

最后,这是我得到的错误时,张贴失败:

[例外……" nsresult: "0x805e0006 ()"JS框架::file:///Users/my_name/Documents/Development/Origin/FrontEndTest/jquery.js:: .send:: line 4" data: no]

知道是怎么回事吗?

在服务器上,你必须在你的路由方法中设置响应。否则客户端会等待,最后崩溃。

将服务器文件中的

更改为以下代码:

app.post('/', function(req, res, next) {
  console.log(req.body.base);
  res.end();
});
app.get('/', function(req, res) {
  console.log("ok");
  res.end();
});

您也可以从服务器发送一些响应数据,如果是,则将res.end()更改为res.send("some response");

相关内容

  • 没有找到相关文章

最新更新