【问题标题】:error on response redirect in expressjsexpressjs中响应重定向错误
【发布时间】:2017-07-12 03:27:50
【问题描述】:

我正在将 api url 重定向到 REST api url。代码如下

app.use('/api/*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header("Access-Control-Allow-Headers", "Origin");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Headers", "Content-Type");
    res.header("Access-Control-Allow-Headers", "Accept");
    console.log("Inside API", req.url);
    res.redirect(http://myrestapi/'+req.url);
});

http://localhost:3000/api/login 的发布请求低于错误

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:3000' 不允许访问。 请建议我哪里错了

【问题讨论】:

  • 来自 REST API url 的浏览器响应需要包含所有正确的 CORS 标头。否则,浏览器将不允许来自 API 服务器的结果。它是为请求提供服务的服务器(您要重定向到的服务器),而不是需要正确 CORS 标头的重定向服务器。

标签: node.js express


【解决方案1】:

我无法重现您的问题。但是,如果您想启用所有 CORS(跨域资源共享)请求,您只需将app.use(cors()); 放在文件顶部即可。

【讨论】:

    【解决方案2】:

    我认为它覆盖了标题“Access-Control-Allow-Headers”。

    试试这个,

    app.use("/api/*",function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
      res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
      console.log("Inside API", req.url);
      res.redirect("http://myrestapi/"+req.url);
    });
    

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 2016-10-20
      • 2016-06-20
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多