【问题标题】:Google Chrome Extension - prevent cookie on jquery ajax request or Use a chome.extension谷歌浏览器扩展 - 防止 jquery ajax 请求上的 cookie 或使用 chrome.extension
【发布时间】:2012-07-04 19:05:47
【问题描述】:

我现在有一个很棒的 chrome 扩展。

如果用户没有付费让图像显示在主列表中,它基本上会遍历网络拍卖网站的 HTML 列表。显示默认图像。

  • 我的插件使用 jQuery Ajax 请求来加载拍卖页面并找到主图像以显示为任何丢失图像的缩略图。效果很好。
  • 插件找到正确的图像 url 并将 HTML Dom 更新为新图像并设置新宽度。

问题在于,拍卖网站会跟踪所有页面浏览量并将其保存到网站的“最近浏览”部分,“用户可以看到他们点击过的任何拍卖”

问题 - 我的插件使用 ajax,cookie 是通过 jQuery ajax 请求发送的。我很确定我无法修改此请求中的 cookie,因此拍卖网站会跟踪请求,并且对于任何缺少图像的列表,此列表现在显示在我的“最近查看”中,即使我实际上没有导航到它。

  1. 我可以删除 ajax 请求的 cookie(我认为我不能)
  2. chrome 可以删除 cookie(仅适用于 ajax 请求)
  3. 我可以让 chrome 发出请求吗(例如 curl,没有 cookie?)

只是为了好奇。 这是此拍卖网站上缺少图片的页面

http://www.trademe.co.nz/Browse/SearchResults.aspx?searchType=all&searchString=toaster&type=Search&generalSearch_keypresses=9&generalSearch_suggested=0

感谢您的任何意见,约翰。

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    您可以使用webRequest API 来拦截和修改请求(包括空白标头)。但是,它不能用于修改在 Chrome 扩展程序的上下文中创建的请求。如果您想将此 API 用于 cookie-blanking 目的,您必须在非扩展上下文中加载页面。通过creating a new tab,或使用屏幕外选项卡(使用experimental offscreenTabs API

    另一种选择是使用chrome.cookie API,并绑定onChanged 事件。然后,您可以拦截 cookie 修改,并使用 chrome.cookies.set 还原更改。

    最后一个选项是在隐身模式下创建一个新的窗口+标签。此方法不可靠,不宜使用:

    • 用户可以禁止访问隐身模式
    • 用户可能在隐身模式下导航到页面,导致 cookie 字段被填充。
    • 破坏性:创建了一个新窗口。

    【讨论】:

    • 感谢您提供这些信息。我可以在那里尝试一些想法,看看是否可以解决我的问题。干杯,约翰。
    • 仅供参考,已经六年了,屏幕外的标签从未成为一件事。
    【解决方案2】:

    大概这个 AJAX 交互是从内容脚本运行的?您可以从后台页面运行它并将数据传递给内容脚本吗?我相信后台页面在不同的上下文中运行,不应该发送正常的 cookie。

    【讨论】:

    • Cookie 绑定到域,而不是请求者。
    • 是的,但是如果后台页面在不同的上下文中运行,那么该站点不应将该活动与浏览该站点的用户联系起来,因此它不会显示在历史记录中。类似于在单独的隐身标签页中打开网站。
    • "Cookie 绑定到域" = 无论发起请求的页面如何,都会发送现有的 cookie。后台页面仍然发送 cookie。
    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    相关资源
    最近更新 更多