Express.js post request "Origin null是不允许的"错误
Express.js post request "Origin null is not allowed" error
我试图发布一个json数据,其中包含一组从JavaScript到Express.JS的键和值。我已经按照其他帖子的建议添加了cors的使用,还有res.header("Access-Control-Allow-Origin", "*");
。
当我测试来自Chrome邮差应用程序的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);
请随时提出任何改进意见。
似乎你正在使用文件://打开你的网页。使用服务器来提供html页面,这样您就可以看到类似localhost:8000/yourpage.html
的内容。同样,你不需要以下中间件(如果你想配置cors模块,然后使用选项对象,如app.use(cors(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();
相关文章:
- Don'不允许将焦点集中在自动完成的选择上
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- js文件未加载js控制台say's”;不允许加载本地资源”;
- Jquery不允许来自多个选择列表的相同值
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- 不允许在文本框中使用小数
- TinyMCE全屏不允许出现模式窗口
- 不允许在字段中输入不需要的字符
- 访问控制允许标头不允许X-Requested-Wise
- Chromium内联样式不允许正确的视图
- JQuery代码语法问题?(“不允许内联控制结构”)
- 正则表达式,不允许在javascript中使用负数和小数以及零
- 不允许输入或聚焦的输入类型文本
- $interval不允许我更新前端
- "访问控制允许原点不允许原点为null"使用jQuery调用web服务时出错
- a4j:命令按钮不允许"<"在渲染中
- "Don't允许访问剪贴板“;不会'不允许在文本框中键入任何内容
- Lawnchair javascript数据"得到“;不允许我分配给另一个变量
- 得到"不允许加载本地资源“;尝试将MediaSource对象附加为HTML5视频标记的源时出错
- Valums文件上传器给出一个“;访问控制允许原点不允许原点为null"错误