从JS控制台中断与站点的连接

时间:2017-11-25 18:40:17

标签: javascript developer-tools

在Chrome中,我使用JS控制台中的JSON文件填充了一个在线映射工具(Kumu):

Workflows.setCurrentMapSource("MY_JSON_LINK");

MY_JSON_LINK在哪里:

https://XXXXXX/json?key=MTE3.DI4LYA.ZrzRFJ5o7Q5m3nLe6d6JGFISdKI

但链接不再有效,所以当我进入Kumu页面时,我收到错误:

Unable to open map

有没有办法打破JS控制台的连接?我搜索过但没找到任何可行的东西

由于

1 个答案:

答案 0 :(得分:0)

我正在通话,所以我无法为您提供代码,但您可以做的是覆盖XMLHttpRequest方法,然后您可以操作在页面上完成的任何请求。

但是这必须在请求完成之前完成,因此您可能需要Tampermonkey用户脚本。例如:

const originalOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function (){
     //do what you need
    originalOpen. apply(this, arguments);
}

因此,例如,如果您想保护某些链接不被访问,您可以这样做:

const originalOpen = XMLHttpRequest.prototype.open;
const REGEX_TEST_URL = /https?:\/\/XXXXXX\/json?key=(.*?)/
XMLHttpRequest.prototype.open = function (method, url){
   console.log("Open: ", url);
   /// if you want to kill access to that URL
   if(REGEX_TEST_URL.test(url))
       throw new Error("Blocked loading of URL "+url)
   //Otherwise allow normal operatio to proceed
   originalOpen.apply(this, arguments);
}

你甚至可以在stackoverflow上测试它。