当前位置:  开发笔记 > 编程语言 > 正文

CORS表示无法正常工作

如何解决《CORS表示无法正常工作》经验,为你挑选了1个好方法。

我试图允许从任何地方访问。

我尝试使用应用中间件:

app.use(function (req, res, next) {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader('Access-Control-Allow-Methods', '*');
  res.setHeader("Access-Control-Allow-Headers", "*");
  next();
});

我已尝试在路线中使用它:

app.post('/login',function(req,res){
var login   = req.body;
var sess    = req.session;

if (!login.email && !login.pwd){    
    return res.status(401);
}
res.header("Access-Control-Allow-Origin", '*');
res.header("Access-Control-Allow-Headers", '*');
.... more code here

两者都不起作用。我不断收到错误消息:“对预检请求的响应未通过访问控制检查:所请求的资源上没有'Access-Control-Allow-Origin'标头。”

在服务器的更下方,我们对另一条路由使用了类似的代码,该代码有效:

app.post('/questar',function(req,res){
//allow xhr post from retireup domains
var cors = {
    origin= "https://www.website.com";
};
res.header("Access-Control-Allow-Origin", cors.origin);
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.type('application/json');

我无法区分代码之间的区别,但是只有一套有效。有什么想法吗?这似乎是一个不应该太复杂的问题。谢谢



1> 小智..:

在路由之前(而不是在路由内部)配置CORS内容。

在这里,像这样(来自enable-cors.org):

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('/', function(req, res, next) {
  // Handle the get for this route
});

app.post('/', function(req, res, next) {
 // Handle the post for this route
});

我总是在Express + Angular应用中像这样配置它,并且效果很好。

希望能帮助到你。

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有