簡體   English   中英

Web API 2 - CORS僅適用於HTTPS(不是HTTP)

[英]Web API 2 - CORS only works over HTTPS (not HTTP)

所有,

我有一個非常簡單的Web API 2項目,我正在努力。 出於某種原因,我不能讓CORS正常工作,除非我把它放在web.config文件中。 我按照MSDN文章和這篇ASP.NET文章中的說明進行操作,但我必須遺漏一些東西。

的Global.asax.cs

protected void Application_Start()
{
    WebApiConfig.Register(GlobalConfiguration.Configuration);
}

WebApiConfig.cs

public static void Register(HttpConfiguration config)
{
    config.EnableCors(new EnableCorsAttribute("*","*","*"));

    config.MapHttpAttributeRoutes();
}

JavaScript的

    $.ajax({
        url: '//myapidomain.com/buildings'
    }).done(function (data) {
        var theList     = $('.buildings'),
            theListHTML = "",
            response    = JSON.parse(data);

        $.each(response.Buildings.Data, function () {
            theListHTML += '<li>' + this.Description + '</li>';
        });
        theList.html(theListHTML);
    });

我已經看過幾乎每一個Stack Overflow(比如這個 )和MSDN論壇帖子(就像這一個 ),從我所知道的,這應該是有效的。 該應用程序托管在運行4.0的IIS 8服務器上。

更新

它似乎與請求本身(或更確切地說是IIS配置)有關。 如果我通過HTTP發送請求,則它會失敗(沒有發回訪問控制頭)。 但是,如果我通過HTTPS請求它,一切正常。

我們的托管環境攔截了非HTTPS請求並強制它們使用HTTPS。 當它執行此操作時,它返回304,jQuery的方法不知道如何處理。 解決方案要么總是通過HTTPS(首選)發出請求,要么自己處理這種情況/找到處理這種情況的替代庫/插件。

我們的托管環境攔截了非HTTPS請求並強制它們使用HTTPS。 當它執行此操作時,它返回304,jQuery的方法不知道如何處理。 解決方案要么總是通過HTTPS(首選)發出請求,要么自己處理這種情況/找到處理這種情況的替代庫/插件。

暫無
暫無

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

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