最大时间我的REST API失败,有时在Chrome中起作用,但它总是在Firefox中起作用。调用API旧数据时,将会响应。还可以使用适当的规则启用CORS。根据我的观察,它在2017年9月2日最近更新后开始发生。
使用的技术: - Java,Angularjs
以下是API失败时遇到的错误: - XMLHttpRequest
无法加载。对飞行前请求的响应不会传递访问控制检查:没有" Access-Control-Allow-Origin
"标头在请求的资源上。因此,不允许访问来源。响应有 HTTP status code 403.
获取API代码: -
executeGet: function () {
var deferred = $q.defer();
$http({
url: REST_API.SERVICE_BASE_URL + encodeURI(this.restURI),
method: 'GET',
timeout: 2000,
cache: false,
headers: {'Content-Type': 'application/json'},
withCredentials: true,
}).then(function (response) {
deferred.resolve(response.data, response.status, response.headers, response.config);
$log.debug( 'URL - '+ url_called, response.data, response.status);
},function (response) {
deferred.reject(response.data, response.status, response.headers, response.config);
$log.debug( 'URL - '+ url_called, response.data, response.status);
});
return deferred.promise;
},
预先感谢。
可悲的是,从此描述中不可能为您提供帮助。这与成为REST API无关,而且Chrome vs Firefox的事情似乎只是一个巧合。
要找出丢失的Access-Control-Allow-Origin
的原因,您需要像其他任何内容一样调试应用程序。这可以通过几种方式完成。
您可以启用新的遗物或数据犬尝试以智能形式捕获错误和其他调试信息,您可以使用造纸图,logentries等来查看日志踪迹,您可以使用rollbar查看droulbar firedeftion如果那比新遗物便宜一些。
很可能会触发某些错误(验证,auth,auth,auth),这使您的应用程序提前返回,并且不会触发任何处理CORS的层。我不能对那是什么猜测,因为您只是放了" Java",如果它的春季,其他或习惯,我们不知道它。
好运您的调试!
我面临着同样的问题,它是通过chrome工作的,但在通过angularjs访问时却没有。我在服务器端使用Spring Boot。在我的情况下,解决方案是启用允许服务器端的CORS。在春季,您可以使用WebMvcconFigurer启用。webmvcconfigurer启用cors
在Chrome中安装扩展名https://chrome.google.com/webstore/detail/dallail/allow-control-control-allow-origi/nlfbmbojpeacpececfghkpbbjhddihlkkiljbijbijbijbijbijbijbijbi并启用CRO Origin Resources