gpt4 book ai didi

javascript - 具有 HTTP 授权的 Chrome 扩展中的 XMLHttpRequest 继续在常规页面上发送授权 header

转载 作者:行者123 更新时间:2023-11-30 10:49:02 24 4
gpt4 key购买 nike

我正在开发一个与 Basecamp API 配合使用的 chrome 扩展。

我有一个后台页面对 API 执行所有 XMLHttpRequests。我没有使用 OAuth,而是使用 API token 的基本 HTTP 授权。

在我的后台页面,我会做这样的请求:

var xmlReq = new XMLHttpRequest();
xmlReq.onreadystatechange = function(){ doSomething(xmlReq.responseXML); };

xmlReq.open(
'GET',
'https://mycompany.basecamphq.com/projects.xml',
true,
access_token,
'x'
);

xmlReq.send(null);

一切正常,但问题是在我使用扩展程序发出请求后,每当我浏览到 https://mycompany.basecamphq.com 时,都会发送 HTTP 请求 header 授权。 ,这使得某些东西在 Basecamp 的网络界面上不起作用。如何使用基本 HTTP 授权在我的扩展程序中发出请求,但在我的常规浏览器请求中没有 header ?

是的,令人困惑的问题。如果您有任何疑问,我会尽力澄清。谢谢

最佳答案

我相信我已经找到了解决方案。

通过使用 xmlhttpresponse.setRequestHeader() 函数,如果我手动设置授权 header ,它不会保持持久。

因此使用上述代码的修改版本:

xmlReq.open(
'GET',
'https://mycompany.basecamphq.com/projects.xml',
true);

xmlReq.setRequestHeader("Authorization", "Basic "+base64_encode(access_token+":x"));

xmlReq.send(null);

我使用了 phpjs.org 库中的 base64_encode 函数。

关于javascript - 具有 HTTP 授权的 Chrome 扩展中的 XMLHttpRequest 继续在常规页面上发送授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6598895/

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