使用Angular和NodeJS阻止跨域请求

时间:2019-08-12 19:25:42

标签: node.js angular cors xmlhttprequest

我正在尝试获取与原始网址不同的url的文本/ html,但是由于CORS块而无法获得POST。

我以这种方式提出申请:

const express = require('express');
const cors = require('cors');
validateOperador(login,pass){
    const url = `${this.operadoresValidateUrl}a=${login}&b=${pass}`
    return   this.http.get(url,{headers: 
    {'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*' } })
  }

和使用express的我的节点后端配置如下:

    app.use(function (req, res, next) {
      //Enabling CORS
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
      res.header("Access-Control-Allow-Headers", 
      "Origin, X-Requested-With, Content-Type, Accept, x-client-key, x-client-token, x-client-secret, Authorization");
        next();
      });

    httpServer = http.createServer(app);
    app.use(cors())
    app.use(bodyParser.json())
    app.use(compression());

我收到此错误:

从源“我的项目url”对“我的api url”处的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:没有“ Access-Control-Allow-Origin”头出现在请求的资源上。

这不是重复的问题,因为我已经安装并运行了CORS

2 个答案:

答案 0 :(得分:0)

您不得在客户端添加“ Access-Control-Allow-Origin”:“ *”。

另外,您正在执行GET操作,而不是POST操作,不确定是否要这样做。

也似乎是this

的副本

答案 1 :(得分:0)

安装cors:npm安装cors

const cors = require('cors');

然后在您的index.js中使用

app.use(cors())