CORS - 重定向到第二个GET正在接收的页面

时间:2016-05-17 15:14:17

标签: javascript jquery ajax cors

我正在制作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中检查此错误,以便我可以处理(重定向)?

1 个答案:

答案 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: