javascript - 无法向 Node 服务器发出发布请求

标签 javascript jquery node.js cross-domain

我正在使用 Node JS 构建一个简单的服务器。我正在使用 express 进行路由。我想使用 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);
    });
}

最后,这是我在发布失败时收到的错误:

[Exception... "" nsresult: "0x805e0006 ()" location: "JS frame :: 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");

关于javascript - 无法向 Node 服务器发出发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32996103/

相关文章:

Mysql搜索、快速回复问题

javascript - 如何在 Node.js 中将 base64 解码为图像文件?

node.js - 在 Node Js 中使用 Graphicsmagick 调整图像大小会生成空文件

javascript - JQuery "undo"返回单击时调用另一个函数的操作

javascript - 为什么在 Javascript 中,作用域是函数级而不是 block 级很重要?

javascript - jQuery .position() 总是返回相同的位置

javascript - 使用JS获取Content并创建iFrame

javascript - "value"参数不能是数字

javascript - 单击选项卡时如何调用函数?

javascript - 请求 JSON 的边缘扩展不起作用