gpt4 book ai didi

javascript - Chrome 扩展中的域授权

转载 作者:行者123 更新时间:2023-11-29 15:44:35 25 4
gpt4 key购买 nike

在chrome扩展中有一个跨域请求通过ajax向远程服务发起请求的需求。

当用户在使用扩展之前获得服务授权时,一切正常。但是,当未经授权的用户发出请求时,扩展失败并显示401 错误代码(未经授权)

我的目的是实现类似浏览器的外观。如果您在某些网页浏览器上未获得授权,则会出现一个对话框,建议您输入您的凭据。由于它们是正确的浏览器显示网页内容。

我试图向扩展 HTML 布局添加一些位于服务上的不可见元素,以强制出现浏览器内置域授权对话框,但 id 似乎不是正确的方法。

长话短说,您是否知道从 chrome 扩展程序或简单地通过 javascript 代码强制浏览器内置授权而不将用户重定向到某个单独的服务网页的策略。或者,也许,这是不可能的,为什么?

发出请求的代码很简单:

$.ajax({
url: 'service url that requires authorization',
dataType: 'json',
success: function (info){
//success handler
},
error: function (){
//error handler
}
});

WBR,维塔利

最佳答案

我认为可以听取 chrome.webRequest.onAuthRequired ( https://developer.chrome.com/trunk/extensions/webRequest.html#event-onAuthRequired )。在事件监听器中,您可以提示用户输入凭据,例如,通过显示一个看起来像内置授权对话框的自定义窗口。 onAuthRequired 是 chrome.webRequest 中唯一支持异步阻塞的事件,它允许您异步获取凭据(来自用户)并传递响应(凭据)。

chrome.webRequest.onAuthRequired.addListener(function(details, callback){
// Prompt the user to enter credentials. Call
// callback({authCredentials: {username: xxx, password: xxx}});
// when they are ready.
}, {.../*request filter*/}, ['asyncBlocking']);

关于javascript - Chrome 扩展中的域授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13778559/

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