來自IIS 7.5的Web API沒有響應Chrome & Firefox。 我在鍍鉻 中收到以下錯誤否請求的資源上存在「Access-Control-Allow-Origin」標頭。原因'http://10.xx.xx.xx:81'因此不允許訪問Chrome和Firefox上的CORS問題
Firefox拋出401未經授權的錯誤。
完美的作品在IE 11
是否有這些瀏覽器所需的任何額外的設置?
來自IIS 7.5的Web API沒有響應Chrome & Firefox。 我在鍍鉻 中收到以下錯誤否請求的資源上存在「Access-Control-Allow-Origin」標頭。原因'http://10.xx.xx.xx:81'因此不允許訪問Chrome和Firefox上的CORS問題
Firefox拋出401未經授權的錯誤。
完美的作品在IE 11
是否有這些瀏覽器所需的任何額外的設置?
「資源使一個跨域HTTP請求時,它比第一資源本身提供了一個不同的域請求資源」 您可以使用Chrome的插件,允許CORS:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi
首先安裝的WebAPI一個Cors NuGet包:
Install-Package Microsoft.AspNet.WebApi.Cors
在
WebApiConfig.cs
文件
然後:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//other code
}
}
通過這種方式,您可以在全局範圍內啓用CORS標頭,以允許來自任何域的跨站點請求。如果你想允許從只有一個(或清單)域跨站點的請求,然後更改的EnableCorsAttribute
構造函數的參數:
new EnableCorsAttribute("http://alloweddomain.com", "*", "*");
您也可以在控制器或行動的基礎上應用的EnableCorsAttribute
。
官方文檔的詳細信息:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
這將無法工作在瀏覽器在控制的環境中使用。這也不是一個通用的解決方案。服務器端修補程序也可以解決Firefox的問題。 – chaitu301
我試圖設置IIS,如下所述,但也沒有奏效。 http://webprojectsolution.blogspot.ca/2016/04/how-to-resolve-cors-issues-in-web-api.html – chaitu301