8
我有HTTP基本身份驗證服務器,我有客戶端腳本知道上述HTTP服務器的用戶名和密碼。我使用XHR
請求和它的setRequestHeader
來設置授權標頭,這一位避免了瀏覽器提示默認的HTTP登錄對話框。將http頭設置爲由瀏覽器生成的請求?
request.setRequestHeader('Authorization', authInfo);
這是正常的對AJAX請求,但如果我想下載從服務器中提到的文件,我被迫去沒有AJAX和使用類似window.location.href
從JavaScript瀏覽器在那裏創建請求本身。由於這個請求不包括授權頭(brwoser只會在每個請求提示登錄對話框併爲實際服務器保存登錄信息的base64後自動添加授權頭),瀏覽器會提示HTTP登錄對話框,這是我想避免的。
那麼有沒有辦法將標題設置爲非ajax由瀏覽器創建的請求?
請注意,auth cookie可能被濫用[CSRF攻擊](http://en.wikipedia.org/wiki/Cross-site_request_forgery) – user123444555621
謝謝,這工作。 不幸的是,我在服務器端沒有腳本解釋器,所以我不能第二種方式。 – ggat
關於第一種方法只需要注意一點,是否有一種方法可以傳遞用戶:例如在base64中編碼的密碼或其他東西。 我認爲這可以通過在URL中發送base64編碼的用戶和密碼來完成,在服務器端對該字符串進行解碼並使用apache重定向到新的URL。由於這是下載用戶在瀏覽器地址欄中不會看到解碼的URL。 但我問,也許有一種本地方式來做到這一點。 – ggat