【问题标题】:CORS request issue (XMLHttpRequest)CORS 请求问题 (XMLHttpRequest)
【发布时间】:2016-01-25 16:45:59
【问题描述】:

我在 Node js 上开发服务器,在 Angularjs 上开发前端,但是当我尝试从前端发出请求时出现错误:

XMLHttpRequest 无法加载 http://localhost:8085/server/authenticate/。 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:9000” 访问。

我的 server.js 中的代码

app.use(function(req,res,next){
    res.setHeader('Access-Control-Allow-Oringin','*');
    res.setHeader('Access-Control-Allow-Methods','GET,POST,OPTIONS');
    res.setHeader('Access-Control-Allow-Headers','X-Requested-With,content-type,Authorization,accept');
    if (req.method === 'OPTIONS'){
        res.statusCode = 200;
        return res.end();
    }
    else{
        return next();
    }
});

有什么建议吗?

注意:后端和前端不在同一个端口,我正在尝试使其作为跨源资源工作。

【问题讨论】:

  • Access-Control-Allow- Oringin 不是 CORS 标头 :) 错误消息确实正确,Access-Control-Allow-Origin 没有在响应中设置。
  • 非常感谢,我没有意识到这一点

标签: javascript angularjs node.js


【解决方案1】:

var express = require('express')
  , cors = require('cors')
  , app = express();
 
app.use(cors());
/* Make your app with CORS support: for more information: https://www.npmjs.com/package/cors*/

【讨论】:

    【解决方案2】:

    你的标题名称Access-Control-Allow-Oringin有一点错误

    试试这个

    app.use(function(req,res,next){
    res.setHeader('Access-Control-Allow-Origin','*');
    res.setHeader('Access-Control-Allow-Methods','GET,POST,OPTIONS');
    res.setHeader('Access-Control-Allow-Headers','X-Requested-With,content-type,Authorization,accept');
    if (req.method === 'OPTIONS'){
        res.statusCode = 200;
        return res.end();
    }
    else{
        return next();
    }
    

    });

    【讨论】:

      猜你喜欢
      • 2012-08-10
      • 2018-11-19
      • 1970-01-01
      • 2020-12-06
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 2020-12-20
      相关资源
      最近更新 更多