繁体   English   中英

Express.js发布请求“不允许使用原始null”错误

[英]Express.js post request “Origin null is not allowed” error

我正在尝试发布一个JSON数据,其中包含一组从JavaScript到Express.JS的键和值。 我添加了其他帖子建议的cors使用,以及res.header("Access-Control-Allow-Origin", "*");
当我测试来自Chrome Postman应用程序的POST请求时,它的运行情况非常好。 但是,当我通过Chrome浏览器通过本地测试网页发送请求时,控制台会输出
XMLHttpRequest cannot load http://localhost:8080/submit_project_request. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 400.

我的Express.JS代码:

var http = require("http");
var express = require("express");
var xmlbuilder = require("xmlbuilder");
var bodyParser = require("body-parser");
var cors = require("cors");

var app = express();
app.use(cors());
var port = process.env.PORT || 8080;

app.use(bodyParser.urlencoded({
    extended: true
}));

app.use(bodyParser.json());

app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

app.get('/submit_project_request', function (req, res) {
    var client_org = req.parm("client_org");
});

app.post('/submit_project_request', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
    console.log(req.body.client_org);
    res.contentType("text");
    res.send("data received");
});

app.listen(8080);

请随时提出任何改进建议。

似乎您正在使用file://打开您的网页。 使用服务器来提供您的html页面,以便您看到类似localhost:8000 / yourpage.html的内容

另外,您不需要以下中间件(如果您想配置cors模块,则使用诸如app.use(cors(options))类的options对象,请参阅此处的可用选项):

app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

另外,您可能想从自己的submit_project_request路由中删除以下内容:

res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();

不建议这样调用next() 在您的代码中,它实质上意味着在此处发送404。 如果您打算这样做,请使用return next();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM