Har*_*han 5 cookies ajax google-chrome google-chrome-extension cors
我在为网站提供chrome扩展程序,该扩展程序提供api来检查用户是否已登录。该API用于GET请求。所以,当我不唱歌时,它给人的感觉。
{ status: "ok", authenticated: false}
Run Code Online (Sandbox Code Playgroud)
当我登录时,它给了我
{status : "ok", authenticated: true, id: 123}
Run Code Online (Sandbox Code Playgroud)
这在浏览器,Chrome扩展程序(例如Postman)和高级Rest Client上正常运行。但是,当我在chrome扩展程序背景中使用它时,它总是说我不是经过身份验证的用户。我发现我进行的ajax调用不会发送该域的Cookie,但是Chrome扩展程序(例如Postman或Advanced REST Client)确实会发送Cookie和XHR请求。
任何想法我怎么能使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))
}
})
Run Code Online (Sandbox Code Playgroud)
更新1:
我可以从后台脚本中获取域Cookie的详细信息。现在我正在寻找如何通过ajax调用发送cookie?
如果内容脚本被注入到来源(协议、主机和端口组合)与 API 来源不同的页面中:
chrome://settings/content/cookies
。withCredentials: true
(credentials: 'include'
用于获取)permissions
的部分中manifest.json
。更喜欢将 API 调用移至后台脚本并将数据传递至内容脚本,以sendMessage
规避第三方 cookie 阻止、CORB 和 CORS 限制。如果您选择这样做,请将 API 来源添加
permissions
到manifest.json
.
归档时间: |
|
查看次数: |
977 次 |
最近记录: |