我在应用程序中使用了CORS。在代码中,我提到特定的URL(域)只需要访问我的API。下面是代码,
public static void Register(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("www.Test.com", "*", "*");
config.EnableCors(cors);
}
根据CORS政策,如果我使用域 www.Test.com 调用上述API,则API响应将显示在我的浏览器(JavaScript客户端)中,而如果我从另一个域(例如www.sample.com)的响应将不会显示在浏览器(JavaScript客户端)中。在浏览器Chrome和Microsoft Edge中,该功能正常运行。
当我从IE浏览器运行它时,这是行不通的,即使我从其他域调用API(例如www.sample.com),浏览器仍会呈现响应。 IE有任何问题。
答案 0 :(得分:0)
这是因为Internet Explorer 9和更低版本会忽略Access-Control-Allow标头,并且默认情况下禁止对Internet区域的跨域请求。
如webdavsystem.com中所述:
Internet Explorer 9和更早版本将忽略Access-Control-Allow标头 并且默认情况下禁止跨域请求Internet区域。至 启用跨域访问,请转到工具-> Internet选项->安全性 标签,点击“自定义级别”按钮。找到其他->访问 跨域设置数据源,然后选择“启用”选项。
是的,IE很痛苦,IE 11和Edge都意味着要尝试使其变得更简单,但是当处理IE 9及以下版本时,IE 9仍然会变得非常困难。