【发布时间】:2020-04-08 07:17:12
【问题描述】:
当我的 Angular 应用程序尝试访问 ASP WebApi 应用程序时遇到问题,每个应用程序都在不同的服务器中。 当我的 Angular 应用程序尝试访问时,我收到消息:“来自原点 'http://ubex:4200' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否 'Access-Control-Allow-Origin'请求的资源上存在标头。”
我尝试根据找到的文档以不同的方式(全局、控制和操作)启用 CORS,但问题仍然存在。
当我运行我的 Angular 应用程序时,我运行: $ ng serve --host 0.0.0.0 --port 4200 --disable-host-check 如果我在没有“禁用主机检查”的情况下运行,则应用程序不会运行。
这是我的 WebApi.config.cs:
public static void Register(HttpConfiguration config)
{
// Enable CORS: le estamos permitiendo a la direccion:4200 consumir la aplicacion con todo y sus metodos
// config.EnableCors(new EnableCorsAttribute("http://ubex:4200", headers:"*", methods:"*"));
// config.EnableCors(new EnableCorsAttribute("http://192.168.100.152:4200", headers: "*", methods: "*"));
EnableCorsAttribute cors = new EnableCorsAttribute("http://192.168.100.152:4200", "*", "GET,POST");
config.EnableCors(cors);
// Web API configuration and services
//Configuración para verificar la seguridad del CORS
//var corsAttr = new EnableCorsAttribute("*", "*", "*");
//config.EnableCors(corsAttr);
如您所见,我已经尝试过多种方式,这是添加到我的 web.config 中的标头:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<!--<add name="Access-Control-Allow-Headers" value="Content-Type, Origin, X-Requested-With, Accept" />-->
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true" />
<!--
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Authorization" />
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,PUT,DELETE" />
-->
</customHeaders>
</httpProtocol>
我已经添加了这个模块(以防万一):
<modules runAllManagedModulesForAllRequests="true"></modules>
这是我的角度服务:
export class EmployeeService {
formData: Employee;
readonly rootURL = "http://192.168.100.151:44344/api"
constructor( private _http: HttpClient ) { }
postEmployee ( formData: Employee ) {
return this._http.post( this.rootURL + '/Employee', formData );
}
}
拜托,我需要知道,我是否遗漏了什么,我希望任何人都可以帮助我..
最好的问候
【问题讨论】: