簡體   English   中英

Firefox和IE中的CORS問題(在Chrome中運行正常)

[英]CORS issue in Firefox and IE (works fine in Chrome)

我在Firefox和IE中遇到了與CORS相關的錯誤,但一切都在Chrome中完美運行。

來自我的客戶的兩個電話是

  1. 一般調用Facebook在Chrome和Firefox中運行,但在IE 11中失敗。我正在調用https://graph.facebook.com/oauth/access_token_info?client_id=myclientid&access_token=usersaccesstoken來驗證他們的令牌是否仍然有效。 在IE中我收到以下錯誤:XMLHttpRequest所需的跨源資源共享(CORS)。
  2. 第二個調用是我的服務器,它在任何地方都啟用了CORS(代碼粘貼在下面)。 有趣的是,這一切都在localhost上,所以應該是同一台服務器。 我收到的錯誤是“同源策略禁止在https:// localhost:44300 / api / auth / login讀取遠程資源。這可以通過將資源移動到同一域或啟用CORS來修復。”

CORS相關的Web API代碼

        var cors = new EnableCorsAttribute("*","*","*");
        config.EnableCors(cors);
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

更新1

嗯,它在部署到Azure時有效,但在localhost上沒有。 部署后,這兩個問題都得到了完全解決。 非常奇怪,非常糟糕,因為我需要能夠在本地測試這些東西。 但至少它有點工作......可能會增加一些線索來解決。

更新2

部署時一致工作(即使是不同域上的客戶端和服務器),也無法在localhost上運行。 我無法縮小為什么它在本地失敗。 清除緩存和刪除的本地文件,問題仍然存在。 完全打開我的服務器到CORS,問題仍然存在。 我唯一可以猜到的是Azure如何處理跨Azure請求,從而繞過部署時的CORS問題。 我真的需要讓它在本地工作,但要進行測試。

嘗試這個。 不確定但是可能會解決這個問題。

1)在您的web api項目中打開nuget包管理器控制台。

2)鍵入Install-Package Microsoft.AspNet.WebApi.Cors並安裝它

3)成功安裝后,鍵入Update-Package Microsoft.AspNet.WebApi並安裝它。

4)請檢查您的web.config文件以獲取以下條目。 如果他們在那里然后請刪除/評論他們。

    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="*" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />

5)現在來到您的控制器文件並導入命名空間。 使用System.Web.Http.Cors;

6)現在在控制器級別輸入[EnableCors(起源:“ ”,標題:“ ”,方法:“*”)],以允許控制器接受所有類型的起源,標題和方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM