在IE8和9我收到的時候我做了CORS的WebAPI調用下面的JavaScript錯誤:IE9,IE8與AngularJS CORS返回「訪問被拒絕」 - ASP.NET的WebAPI
Error: Access is denied.
{
[functions]: ,
description: "Access is denied.",
message: "Access is denied.",
name: "Error",
number: -2147024891
}
我設置我的的WebAPI喜歡這裏描述http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
所以的WebAPI包含:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
[...]
我的測試AngularJS應用:
個<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ng="http://angularjs.org" ng-app="app">
<head>
<title>test</title>
<script src="Scripts/angular.js"></script>
<script src="app.js"></script>
</head>
<body>
<div ng-controller="testController as vm">
{{vm.test}}
{{vm.data}}
</div>
</body>
</html>
app.js:
var app = angular.module('app');
app.controller('testController', function ($http) {
var vm;
vm = this;
vm.test = "bla non no ";
vm.data = null;
$http.defaults.headers.common['Authorization'] = 'a token'
return $http({
method: 'GET',
data: null,
url: 'http://webapi.com/api/controller/getactionmethod/',
}, function (data) {
console.log("bla");
}).success(function (data, status, headers, config) {
console.log("bla a");
vm.data;
});
});
上面的代碼/調用的WebAPI鉻和IE 10. IE10打印作品:
SEC7118:XMLHttpRequest進行http://webapi.com/api/controller/getactionmethod/需要跨源資源共享(CORS)。 SEC7119:XMLHttpRequest的http://webapi.com/api/controller/getactionmethod/需要CORS預檢。
我真的被卡住了,不知道我可以試試其他的東西。有任何想法嗎?
http://stackoverflow.com/questions/10232017/ie9-jquery-ajax-with-cors-returns-access-is-denied – epascarello 2014-10-10 16:48:53
我使用的是angularjs而不是jQuery。 – Briefkasten 2014-10-10 16:50:04
IE8和IE9不支持標準的CORS XHR。看到我對這個問題的答案更多信息http://stackoverflow.com/questions/25141650/xdomainrequest-vs-xmlhttprequest – MrCode 2014-10-10 16:57:35