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阻止了跨域请求[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Angular 和 NodeJs (CORS) 的跨域请求