2010-10-21 133 views
3

我想檢查一個URL是否受到使用JavaScript的Http基本認證保護。 這是我到目前爲止有:使用javascript控制HTTP基本認證

function showFailure(){ alert("FAILED ") } 
    function showSuccess(){ alert("SUCCESS") } 

    var myRequest = new Request({ 
    url: 'http://localhost/access_protected_HTTP_BASIC', 
    method: 'get', 
    onSuccess: showSuccess, 
    onFailure: showFailure 
    }).send(); 

但實際上打開的瀏覽器登錄彈出訪問資源。 有沒有辦法觸發該彈出窗口?

謝謝!

注:我使用的mootools在這個例子中,但我會採取任何JavaScript示例,它所做的伎倆:)

回答

7

根據answer to a similar question,您可以在發送請求時手動傳遞用戶名和密碼。 (而據MooTools Docsuserpassword參數做的正是這一點。)

此外,XMLHttpRequest spec說:

如果驗證失敗,授權不是筆者請求頭的名單,要求用戶名非空,並且請求密碼非空,用戶代理不得提示最終用戶輸入其用戶名和密碼。

這意味着您可以設置一個虛擬用戶名和密碼,並且瀏覽器不會提示用戶。如果您取回401狀態代碼,則表示需要授權。

+0

正是我需要的:)謝謝 – Nhaolio 2010-10-21 16:44:16

0

你應該需要做的是添加頁眉Authorization: Basic *Base64EncodedString*其中*Base64EncodedString*base64Encode(username+':'+password)它應該是很容易在那裏找到一個base64encode函數。 YMMV