3

需要通過ajax在Chrome擴展中向遠程服務發出跨域請求。Chrome擴展中的域授權

用戶在使用擴展前被授權使用服務時,所有功能都能正常工作。但是,如果某個未通過身份驗證的用戶發出請求擴展失敗,請使用401錯誤代碼(未定製)

我的目的是完成瀏覽器,如外觀。如果您未在某些網頁瀏覽器上授權,則會出現對話框,提示您輸入您的憑證。由於它們是正確的瀏覽器顯示網頁內容。

我試圖添加到擴展HTML佈局一些不可見的元素,位於服務強制瀏覽器內置域授權對話框出現,但ID似乎並不正確的做法。

長話短說,你知道一些策略到強制瀏覽器內置授權鉻擴展或只是通過JavaScript代碼,而無需重定向用戶一些單獨的服務網頁。或者,也許這是不可能的,爲什麼?這使得請求

代碼很簡單:

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

WBR,維塔利

回答

1

我認爲這是可能聽chrome.webRequest.onAuthRequiredhttps://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']); 
+0

這可以做到這一點。但由於一些特定的需求,我們決定將用戶重定向到某個服務頁面。 Thnks –