我有一個weblogic部署的web應用程序。我正在使用angularJS
在我的Web應用程序中撥打weblogic REST API
的其餘電話。當weblogic REST API
會話已過期時,它會以status code
:401
和標頭'WWW-Authenticate'='Basic realm=x'
進行響應。這會導致瀏覽器在客戶端腳本處理響應之前彈出基本身份驗證對話框。我想阻止此登錄對話框出現。有沒有什麼辦法在weblogic中配置它,或者在客戶端用javascript(angularjs)處理它?Weblogic REST API - 防止瀏覽器的基本身份驗證對話框401
我試着添加X-Requested-With: XMLHttpRequest
來請求標題沒有運氣。 我已經試過在下面的問題中提到的解決方案。
這些都是導致彈出響應的報頭的內容。
Content-Length → 1468
Content-Type → text/html; charset=UTF-8
Date → Tue, 29 Nov 2016 02:54:49 GMT
WWW-Authenticate → Basic realm="weblogic"
X-ORACLE-DMS-ECID → 3431314314
X-ORACLE-DMS-RID → 0
這是請求頭
GET /management/weblogic/latest/domainRuntime/serverLifeCycleRuntimes? HTTP/1.1
Host: pahslk:58090
Connection: keep-alive
Accept: application/json, text/plain, */*
X-Requested-By: xx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
Referer: http://pahslk0:58090/.........
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: JSESSIONID=......
你在你的angularjs代碼中使用httpInterceptor。看起來你在攔截器中發現了401作爲響應,並重定向到登錄頁面或登錄彈出窗口? –
@ManishSingh我沒有使用httpInterceptor。如果瀏覽器收到「status-code:401」和「WWW-Authenticate:Basic ....」的響應,瀏覽器的登錄對話框將會彈出。瀏覽器將在執行任何JavaScript之前捕獲響應。 – pahan
這是服務器上的問題。最好的方法是禁用服務器上的基本身份驗證。如果你不能這樣做,你可以設置一個代理來改變標頭,所以它們不會被瀏覽器註冊 – Kliment