gpt4 book ai didi

ajax - 从 chrome 扩展内容脚本发送带有 ajax 调用的 cookie

转载 作者:行者123 更新时间:2023-12-03 17:18:41 24 4
gpt4 key购买 nike

我正在为一个提供 api 来检查用户是否登录的网站制作 chrome 扩展。该 api 用于 GET 请求。所以当我在它给的时候,没有被烧焦。

{ status: "ok", authenticated: false}

当我登录时,它给了我
{status : "ok", authenticated: true, id: 123}

这在浏览器、Chrome 扩展(如 Postman)和高级 Rest Client 上运行良好。但是当我在我的 chrome 扩展背景中使用它时,它总是说我不是经过身份验证的用户。我发现我进行的 ajax 调用不会发送域的 cookie,但像 Postman 或 Advanced REST 客户端这样的 chrome 扩展确实会随 XHR 请求发送 cookie。

知道如何使 ajax 与它一起发送 cookie。

这是我来自 chrome 扩展的 ajax 调用
$.ajax({
method:"GET",
// xhrFields: {
// withCredentials: true
// },
// crossDomain: true,
url:"http://test-staging.herokuapp.com/user/details",
success: function(result){
if(result.status=="ok"){
alert(JSON.stringify(result));
cb(result.authenticated);
}
},
error: function(err){
alert("unable to authenticate user "+JSON.stringify(err))
}
})

更新 1:

我可以从后台脚本中获取域 cookie 的详细信息。现在我正在寻找如何通过 ajax 调用发送 cookie?

最佳答案

如果内容脚本被注入(inject)到具有来源的页面中
(协议(protocol)、主机和端口组合)不同于API来源:

  • 可能会阻止 Cookie第三方 cookie 阻止 特征。
    检查是否启用:chrome://settings/content/cookies .
    后台脚本不受它的影响(从 Chrome 81 开始)。
  • 任意设置withCredentials: true (credentials: 'include' 获取 )
    或将原点添加到 permissions manifest.json的部分.
    要接收响应,无论哪种情况都需要正确的 CORS header 。

  • 更喜欢将 API 调用移动到后台脚本并将数据传递给
    带有 sendMessage 的内容脚本规避 第三方 cookie 阻止 ,
    CORB 和 CORS 限制。如果您选择这样做,请将 API 源添加到 permissions manifest.json的部分.

    关于ajax - 从 chrome 扩展内容脚本发送带有 ajax 调用的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192375/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com