我正在制作AJAX请求(JQuery $ .ajax)以在我的网页中加载一些内容。但是,一段时间后用户会话已过期,因此需要再次进行身份验证。
当用户未经过身份验证时,我收到了来自网站的两个GET请求。一个是我在AJAX中请求的URL(ok),另一个是由服务器的防火墙(?)提供的,导致CORS错误,因为这个URL不在同一个服务器下。
示例:
GET https://my.url.requested 302 Found 5ms
GET https://cors.url.which.causes.error.requesting.authentication
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://cors.url.which.causes.error.requesting.authentication?blabla. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
我需要做的是重定向到第二个URL(导致错误的URL)。因为它是显示身份验证系统/屏幕的URL。
如何在我的javascript中检查此错误,以便我可以处理(重定向)?
答案 0 :(得分:0)
$ .ajax函数中有一些参数。有两种方法可以解决这个问题:
1)
$.ajax({
url: loadurl,
error: function(jqXHR, status, errorThrown) {
window.location.replace(authentication-url);
}
});
2)
$.ajax({
url: loadurl,
}).fail(function() {
window.location.replace(authentication-url);
});
它们是等价的。阅读:.fail or Error: