【问题标题】:How to fix Cross-Origin Request Blocked: (Reason: CORS preflight channel did not succeed)如何修复跨域请求被阻止:(原因:CORS 预检通道未成功)
【发布时间】:2019-03-25 09:19:55
【问题描述】:

我已经构建了一个带有 Web-API 调用的服务器端,以从 Angular 应用程序获取数据, 我的注册页面正在获取数据,但它从未到达服务器端, 不断出现以下错误:

跨域请求被阻止:同源策略不允许读取位于http://localhost:58972/api/user/ 的远程资源。 (原因:CORS 预检通道未成功)。[了解详情]

跨域请求被阻止:同源策略不允许读取位于http://localhost:58972/api/user/ 的远程资源。 (原因:CORS 请求未成功)。[了解详情]

错误 Object { headers: {…}, status: 0, statusText: "Unknown Error", url: "http://localhost:58972/api/user/", ok: false, name: "HttpErrorResponse", message: "Http failure response for http://localhost:58972/api/user/: 0 Unknown错误”,错误:错误}

【问题讨论】:

    标签: angular asp.net-web-api


    【解决方案1】:

    添加 config.EnableCors();在 WebApiConfig.cs 文件中的注册方法中

    在角边添加“access-control-allow-origin” HttpHeader

    如果您使用 owin 和基于令牌的身份验证,那么

    安装这个 nuget 包 https://www.nuget.org/packages/Microsoft.Owin.Cors/ 并添加 app.UseCors(CorsOptions.AllowAll);在配置方法下的启动文件中。

    【讨论】:

    • 嘿,我试图放置方法 EnablCors(),但配置没有它,我应该实现它吗?以及我需要把 HttpHeader 放在哪里?
    • 您是否使用基于 owin 令牌的身份验证?
    • 请从 nuget 添加 Microsoft.AspNet.WebApi.Cors。抱歉,我没有在原始答案中提到这一点。
    • 步骤 1. 添加 nuget 包 Microsoft.AspNet.WebApi.Cors 2. 添加 config.EnableCors();在 Register 方法下的 WebApiConfig.cs 文件中。 3. 在你的方法之上添加 [EnableCors(origins: "", headers: "", methods: "*")]
    猜你喜欢
    • 2015-08-12
    • 2016-03-15
    • 2020-08-16
    • 1970-01-01
    • 2016-12-21
    • 2016-04-02
    • 1970-01-01
    • 2019-01-25
    • 2021-11-29
    相关资源
    最近更新 更多