【问题标题】:403 forbidden Rest API (node js) in Angular js1Angular js1中的403禁止Rest API(节点js)
【发布时间】:2018-03-11 06:32:54
【问题描述】:

我正在将在不同 localhost 上运行的 nodeJS REST API 调用到 Angular 应用程序中, 在邮递员中,我得到了预期的结果。但在角度应用程序中,由于 403 错误而下降,这是由于预检而发生的(预检响应具有无效的 HTTP 状态代码 403)。我尝试使用 $httpprovider 删除一些默认标头,还尝试在 access-control-allow-region 中使用正确的服务器名称而不是通配符(*),但没有任何效果。寻求帮助! 预检请求没有身份验证。 发布我的 req-respo snap

【问题讨论】:

标签: angularjs node.js http-status-code-403 preflight


【解决方案1】:

通过在服务器端处理 OPTIONS 请求,我能够解决问题, This post solved my problem

通过添加以下代码行

app.use(function (req,res,next){
     if (req.method === 'OPTIONS') {
          console.log('!OPTIONS');
          var headers = {};
          // IE8 does not allow domains to be specified, just the *
          // headers["Access-Control-Allow-Origin"] = req.headers.origin;
          headers["Access-Control-Allow-Origin"] = "*";
          headers["Access-Control-Allow-Methods"] = "POST, GET, PUT, DELETE, OPTIONS";
          headers["Access-Control-Allow-Credentials"] = false;
          headers["Access-Control-Max-Age"] = '86400'; // 24 hours
          headers["Access-Control-Allow-Headers"] = "X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept";
          res.writeHead(200, headers);
          res.end();
    } else {
    //...
    other requests
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多