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

我正在尝试获取与来源不同的 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

【问题讨论】:

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

标签: node.js angular cors xmlhttprequest


【解决方案1】:

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

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

它似乎与 this 重复

【讨论】:

    【解决方案2】:

    安装 cors:npm install cors

    const cors = require('cors');

    然后在你的 index.js 中使用

    app.use(cors())

    【讨论】:

    • 已经做了,但是没用
    猜你喜欢
    • 2016-05-17
    • 2020-12-22
    • 2019-12-04
    • 2018-10-07
    • 1970-01-01
    • 2018-11-30
    • 2021-04-01
    • 1970-01-01
    • 2015-04-24
    相关资源
    最近更新 更多