http://localhost:4200' 已被 CORS 策略阻止:对预检请求的响应未通过
Posted
技术标签:
【中文标题】http://localhost:4200\' 已被 CORS 策略阻止:对预检请求的响应未通过【英文标题】:http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't passhttp://localhost:4200' 已被 CORS 策略阻止:对预检请求的响应未通过 【发布时间】:2019-05-13 04:59:17 【问题描述】:我有一个我似乎无法弄清楚的问题。我想使用以下代码从我的 Angular 客户端向服务器发送一个 http 参数请求,但出现异常:
http://localhost:4200' 已被 CORS 策略阻止:对预检请求的响应未通过
我想澄清一下,我是否在 Angular 中犯了任何错误,或者这是服务器端的问题?
授权:
login(username: string, password: string)
let params = new HttpParams();
params = params.append('email', username);
params = params.append('password', password);
return this.http.post<any>('URL',params:params)
.pipe(map(user =>
if (user && user.token)
),
catchError(this.handleError)
);
【问题讨论】:
Response to preflight request doesn't pass access control check的可能重复 @AbhiRam 检查这个:***.com/questions/53087341/… 【参考方案1】:是的,这是服务器端问题而不是客户端问题。
您需要从服务器端为您的localhost
启用CORS
,以便从您的Angular 代码中使用API。
PS:为了快速修复,您可以安装chrome plugin 以启用CORS
,但我们不建议这样做。
【讨论】:
所以也许你应该去寻找从后端启用 CORS 的精确修复【参考方案2】:修改您的服务器以添加标头 Access-Control-Allow-Origin: *
以启用来自任何域的跨域请求。
【讨论】:
【参考方案3】:在运行应用程序之前在 VSCode 中添加配置(F5)
"runtimeArgs": ["--disable-web-security"]
在 launch.json 文件中
【讨论】:
以上是关于http://localhost:4200' 已被 CORS 策略阻止:对预检请求的响应未通过的主要内容,如果未能解决你的问题,请参考以下文章
http://localhost:4200' 已被 CORS 策略阻止:对预检请求的响应未通过
Angular 6 + Spring Boot:错误:“来自原点 'http://localhost:4200' 已被 CORS 策略阻止”
访问“http://....”源“http://localhost:4200”的 XMLHttpRequest 已被 CORS 策略阻止
从源“http://localhost:4200”访问“localhost:8088/user/”的 XMLHttpRequest 已被 CORS 策略阻止 [重复]
带有 Angular 的 Spring Boot。从源“http://localhost:4200”访问“http://localhost:8080/”的 XMLHttpRequest 已被 CORS
从 localhost:4200 访问 localhost:8080 的 XMLHttpRequest 已被 CORS 策略阻止