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



我正在发出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中出现此错误时进行检查,以便进行处理(重定向)

$.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或错误:

最新更新