JavaScript /用户脚本:获取GET请求的重定向网址,该请求重定向到CORS阻止的网址

问题描述

我正在为站点a 一个用户脚本。 站点a 上有指向其他路由的链接,该链接重定向站点b 上的路由。只要我在站点a 登录重定向就可以工作。我需要将重定向网址(网站b )发送到我的服务器。我需要从用户脚本中获取网址,以便重定向有效。

使用$ .ajax通过GET请求点击链接,我在控制台中收到此错误

Access to XMLHttpRequest at 'site b/route' (redirected from 'site a/link route') from origin 'site a' has been blocked by CORS policy...

我不需要网站b 重定向内容,我只需要URL。我已经尝试过了:

$.ajax({
    url: 'site a/link route',type: 'GET',success: function(data){ 
        console.log(data); // this will not run due to CORS
    },error: function(data) {
        console.log(data); // this runs,but can i get the redirect url (site b)?
    }
});

是否可以获取重定向网址?可以使用XMLHttpRequest来做到这一点吗?

编辑:我几乎放弃了这一点。我找到了另一个使用扩展程序的解决方案,它与该问题根本不相关。如果这个问题有新的答案/评论,我仍然会尝试找到有效的答案。

解决方法

不幸的是,使用XMLHttpRequest不能完全实现您想做的事情。通常,不允许在原点内进行CORS。这是在服务器端完成的,在cyber security中很重要。

,

您可以使用代理,

https://cors-anywhere.herokuapp.com/

在您的代码上,您可以执行以下操作

$.ajax({
url: 'https://cors-anywhere.herokuapp.com/' + 'site a/link route',type: 'GET',success: function(data){ 
    console.log(data); // this will not run due to CORS
},error: function(data) {
    console.log(data); // this runs,but can i get the redirect url (site b)?
}

});