从源“http://localhost:4200”访问“”处的 XMLHttpRequest 已被 CORS 阻止。我无权访问服务器
Posted
技术标签:
【中文标题】从源“http://localhost:4200”访问“”处的 XMLHttpRequest 已被 CORS 阻止。我无权访问服务器【英文标题】:Access to XMLHttpRequest at '' from origin 'http://localhost:4200' has been blocked by CORS. I don't have the access to server 【发布时间】:2022-01-03 22:19:28 【问题描述】:我正在尝试使用公共 API,但我得到了一个失败的答案。我使用 Postman 和浏览器(如 google chrome 和 microsoft edge)进行了测试,我可以使用 API,但是当我尝试使用我的 Angular 应用程序使用 API 时,我没有成功的答案????
答案是: “从源 'http://localhost:4200' 访问 'https://bio.torre.co/api/bios/ricovar96?s=fMoC3WTE0B' 的 XMLHttpRequest 已被 CORS 策略阻止:没有 'Access-Control-请求的资源上存在 Allow-Origin' 标头。"
我无权访问服务器,因为是公共 API,所以我不能输入 @CrossOrigin(origins = "http://localhost:4200")。这是错误:
这是 url API:https://bio.torre.co/api/bios/ricovar96?s=fMoC3WTE0B
我做了这一步但没有用:
-
在 package.json 的同一级别中创建一个 proxy.conf.json 文件,使用此结构:
"*/api/*": "target": "https://bio.torre.co", "secure": false, "changeOrigin": true, "logLevel": "debug", "pathRewrite": "^/api" : ""
-
我修改了 package.json。我添加了我在脚本部分中创建的文件,如下所示:
“脚本”: ... "start": "ng serve --proxy-config proxy.conf.json", ...
-
我修改了这样创建的服务(在我在导入 HTTPClientModule 中设置的 app.module.ts 中):
import HttpClient from '@angular/common/http'; import Injectable from '@angular/core'; import Observable from 'rxjs'; @Injectable( providedIn: 'root' ) export class ResumeService > constructor(private http: HttpClient) getUserData(id: string): Observable<any> return this.http.get<any>(api/bios/ricovar96?s=fMoC3WTE0B");
-
我运行了 npm start。
但我得到了这个答案:
你认为它正在发生什么?
【问题讨论】:
【参考方案1】:我修复了在 .Net 中创建 API 的问题。此 API 使用了具有错误 CORS 的 API,但使用 .Net 中的配置方法中的此设置
app.UseCors(x=>x .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader());
之后我在 Azure 中发布了这个 API。如果可以访问后端添加此配置,如果没有,请尝试联系IT部门并尝试添加此配置。如果您有其他解决方案,请在评论中留下
【讨论】:
以上是关于从源“http://localhost:4200”访问“”处的 XMLHttpRequest 已被 CORS 阻止。我无权访问服务器的主要内容,如果未能解决你的问题,请参考以下文章
从源“http://localhost:4200”访问“localhost:8088/user/”的 XMLHttpRequest 已被 CORS 策略阻止 [重复]
带有 Angular 的 Spring Boot。从源“http://localhost:4200”访问“http://localhost:8080/”的 XMLHttpRequest 已被 CORS
从源“http://localhost:4200”访问“http://localhost:9090/api/auth/produits/files”的 XMLHttpRequest 已被 CORS 策
从源“http://localhost:4200”访问“”处的 XMLHttpRequest 已被 CORS 阻止。我无权访问服务器
从源“http://localhost:4200”访问“https://exam.com/api/Uni/GetAll”的 XMLHttpRequest 已被 CORS 策略阻止