JavaScript HTTP 请求未处于隐身模式

JavaScript HTTP Request Not in Incognito Mode

我是网络开发的新手,正在尝试构建一个小网页来检测当前是否有人在该浏览器上登录 Instagram。如果我 运行 我的代码在 Chrome 的控制台中逐个命令并手动复制粘贴 HTML,它会完美运行。但是当我尝试单独 运行 我的代码时,它似乎 运行 就好像它处于隐身模式。

如何解决这个问题?如果用户需要授予我的页面访问 Instagram 的权限,我该怎么做?

这是我的代码的 JS 部分:

const USERNAME_REGEX = /"viewer"\:{.*"full_name"\:"([^"]+)"/gm;
  const FULLNAME = 'full_name\":\"';

  document.addEventListener('DOMContentLoaded', () => {
    const request = new XMLHttpRequest();
    request.open('GET', 'https://instagram.com');
    request.send();
    request.onload = () => {
      const data = request.responseText;
      var u = data.match(USERNAME_REGEX);
      if (u != null) {
        u = u[0];
        u = u.substring(u.indexOf(FULLNAME) + FULLNAME.length).slice(0, -1);
        document.querySelector('#info').innerHTML = u;
      }
      else {
        document.querySelector('#info').innerHTML = 'no one is logged in!';
      }
    }
  });

谢谢 :) 祝你有美好的一天!

I'm new to web development and am trying to build a small webpage that'll attempt to detect if anyone's currently logged into Instagram on that browser.

这听起来像是一场安全和隐私噩梦,幸运的是,这对每个人(包括您)来说都是不可能的。 (或者至少,不应该...)

If I run my code command-by-command in Chrome's console and manually copy-paste the HTML, it works perfectly.

完全不同的语境。事实上,您会发现,如果您 运行 在不在 Instagram.com 上的控制台中使用此代码,它将无法工作。

Same-origin policy 将阻止您访问另一个域。您正在尝试的是一种不会奏效的经典跨源攻击。 CORS 会解决这个问题,但 Instagram 肯定不会让您访问。

How would one get around this?

你不知道。