对预飞行请求的响应未通过访问控制检查NodeJS/Heroku/Express
Response to preflight request doesn't pass access control check NodeJS/Heroku/Express
我在Heroku上使用Express应用程序。我尝试从另一个NodeJS应用程序向它发出RESTful请求。
下面是Heroku应用程序的一个片段,叫做app.js
:
var express= require("express");
app.get("/results",function(req,res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
});
这里是我在本地运行的一个应用程序的片段,local-app.js
:
var request= require("superagent");
var req= request.get("http://url-to-app-js.com?query=1").set(
"Access-Control-Allow-Origin", "http://url-to-app-js.com",
"Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS",
"Access-Control-Allow-Headers", "Content-Type, Authorization, Content-Length, X-Requested-With"
);
req.end(function(err,res){
// do things
});
当我运行local-app.js
时,我在浏览器控制台中得到了这个错误:esponse to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
我知道我可以在关闭某些安全设置的情况下运行浏览器Chromium,但我需要能够在不关闭安全设置的情况下运行这个。
我做错了什么?我怎么修理它?
Access-Control-Allow-Origin
、Access-Control-Allow-Methods
、Access-Control-Allow-Headers
为响应头。它们根本不应该出现在请求中。
通过添加非标准标头,您可以使请求成为预发送请求而不是简单请求。(您可能正在做其他事情,使其成为预先发送的请求,但额外的头绝对没有帮助)。
预飞行请求发送一个OPTIONS请求,以便在发出您实际想要发出的请求(在本例中为GET)之前确定CORS是否允许它。
您只在接收到GET请求时设置CORS响应头。因为您没有用它们来响应OPTIONS请求,所以浏览器拒绝发出GET请求。
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- CORS:否'访问控制允许来源'header-但是php设置头文件
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- CORS:访问控制允许原点不等于提供的原点
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- django没有访问控制允许删除原始标头
- HTML5 Canvas访问控制允许原始错误
- Android、iOS和Windowsphone的PHP访问控制
- 访问控制台中的匿名函数
- 访问控制允许标头不允许X-Requested-Wise
- 我如何设置HTTP头“;访问控制允许起源”;用于来自thttpd web服务器的HTTP响应
- Ajax—“;访问控制允许起源”;错误
- XMLHttpRequest无法加载url Origin访问控制允许Origin不允许null
- 访问控制允许来源,即使在同一域上
- jQuery 表单插件:XMLHttpRequest 无法加载 http://www...没有“访问控制允许来源”
- 检查/访问 QML 中动态创建的对象
- XMLHttp请求无法加载 对预检请求的响应未通过访问控制检查
- 正在获取请求't通过访问控制检查:否'访问控制允许来源'标头存在于请求的资源上
- 对预飞行请求的响应未通过访问控制检查NodeJS/Heroku/Express
- SOAP webservice错误:对预飞行请求的响应未通过访问控制检查'使用SOAPClient.js