我在S3上主持一个SPA,它适用于IE,Chrome和Opera版本25,但不适用于Opera版本12.17。 在应用加载时,我使用 angular $ http.get 向我们的API发出请求,当我查看网络流量时,它不会显示这些请求。
var config = { 'Authorization' : 'Bearer '+ accessToken };
$http.get(url, { headers : config })
.success(function(data, status) {
$rootScope.info = " In success callback";
callback(transformResponse(data));
})
.error(function(data, status, headers, config){
$rootScope.info = " In error callback";
callback(data.error);
});
我在控制台中收到以下错误。
Error: Cannot convert 'data' to object
<anonymous function: f.error>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:72
<anonymous function: then>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:100
<anonymous function: then>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:100
<anonymous function: then>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:100
<anonymous function: then>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:101
<anonymous function: $eval>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:111
<anonymous function: $digest>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:108
<anonymous function: $apply>([arguments not available])@http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js:112
看起来它可能是一个CORS问题,如果我将资源放在与我的应用程序相同的域下并请求该资源,那么它就可以正常工作。 什么是导致这个问题的OPERA 12.17以及可能的解决方法?
答案 0 :(得分:0)
原来这是一个CORS问题。在CORS方面,Opera 12.17似乎非常严格。我将应用程序和所有必要的资源移动到一个域中,它可以正常工作。注意*此问题仅发生在Opera 12.17中,以后的版本似乎有效。