Angular和NodeJS阻止了跨域请求[重复]

Posted

技术标签:

【中文标题】Angular和NodeJS阻止了跨域请求[重复]【英文标题】:Cross-Origin Request Blocked with Angular and NodeJS [duplicate] 【发布时间】:2019-12-19 09:15:29 【问题描述】:

我正在尝试获取与来源不同的 url 的文本/html,但由于 CORS 阻塞,我无法获取 POST。

我以这种方式进行有角度的申请:

const express = require('express');
const cors = require('cors');
validateOperador(login,pass)
    const url = `$this.operadoresValidateUrla=$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

【问题讨论】:

不一样 示例参考expressjs.com/en/resources/middleware/cors.html 我无法将这些示例放入我的项目中,因为我需要的是获取与来源不同的 url 的 html 如果您可以控制前端向其发出请求的后端,那么您可以在后端正确配置 CORS。如果不是这种情况,请随时使用更多详细信息更新您的问题。 这不是一个重复的问题,因为我已经安装并运行了 CORS 你到底做了什么?使用相关代码更新您的问题 问题已更新 【参考方案1】:

您不得从客户端添加 'Access-Control-Allow-Origin': '*'。

此外,您正在执行 GET 而不是 POST,不确定这是否是您想要的。

它似乎与 this 重复

【讨论】:

【参考方案2】:

安装 cors:npm install cors

const cors = require('cors');

然后在你的 index.js 中使用

app.use(cors())

【讨论】:

已经做了,但是没用

以上是关于Angular和NodeJS阻止了跨域请求[重复]的主要内容,如果未能解决你的问题,请参考以下文章

React 和 Express 阻止了跨域请求

使用 Angular 和 NodeJs (CORS) 的跨域请求

如何解决此问题:跨域读取阻塞 (CORB) 阻止了跨域响应

跨域读取阻止 (CORB) 阻止了跨域响应 https://cdnjs.com/libraries/Chart.js

Autodesk Forge 跨域请求被阻止错误

Sails/Angular 跨域请求被阻止