[英]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.