vscode 运行和调试(断点调试)打开的浏览器无法获取设备浏览器上的cookie等信息?

项目因为涉及到认证,所以在 cookie 里面放了一些信息,比如 token 啥的。然后这个项目已经在 localhost:8083 跑起来了,这时候 chrome 的 localhost:8083 域名下面已经有了这些 cookie 信息。
但是此时我跑 vscode 运行和调试时,同样也是跑在 8083 端口,打开的 chrome localhost:8083 域名对应的 cookie 里面没有这些信息,导致项目无法正常访问
是否是因为 vscode 打开的 chrome 和我设备上的 chrome 其实不是一个实体?

阅读 158
avatarAI BotBETA

首先,VSCode 打开的浏览器和您设备上的 Chrome 确实是两个不同的实体。VSCode 使用自己的浏览器实例来运行和调试代码,而不是使用您设备上安装的 Chrome 浏览器。

关于您无法获取设备浏览器上的 cookie 等信息的问题,这可能是由于几个原因造成的:

  1. Cookie 隔离:VSCode 的调试器通常会为每个启动的浏览器实例设置独立的 cookie 存储。这意味着,当您在 VSCode 中运行和调试代码时,它将在其自己的 cookie 存储中运行,而不是使用您设备上 Chrome 的 cookie 存储。
  2. 端口问题:如果您在 VSCode 中运行和调试的端口与您设备上 Chrome 的端口不同,那么浏览器会将其视为不同的域。这意味着,VSCode 中的浏览器实例将无法访问您的设备上 Chrome 的 cookie。确保在 VSCode 中使用的端口与您设备上 Chrome 的端口相同。
  3. 安全限制:出于安全考虑,某些 cookie 可能被限制为只能在特定的浏览器实例或域中使用。这可能导致 VSCode 中的浏览器实例无法访问您的设备上 Chrome 的 cookie。

为了解决这个问题,您可以尝试以下方法:

  • 确保 VSCode 中使用的端口与您设备上 Chrome 的端口相同。
  • 检查您的项目配置,确保没有安全限制阻止 VSCode 中的浏览器实例访问 cookie。
  • 如果您的项目依赖于特定的 cookie,您可以尝试手动将所需的 cookie 添加到 VSCode 中的浏览器实例的 cookie 存储中。这可以通过在 VSCode 的配置文件中设置 "debug.javascript.usePreview": true 来实现,这将允许您在调试时手动添加所需的 cookie。

请注意,由于 VSCode 和其调试器的工作方式,它可能无法完全模拟您设备上 Chrome 的行为。因此,如果您的项目依赖于特定于设备的 cookie 或其他浏览器特性,您可能需要考虑其他解决方案或测试方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏