2016-11-24 115 views
3

我有一個weblogic部署的web應用程序。我正在使用angularJS在我的Web應用程序中撥打weblogic REST API的其餘電話。當weblogic REST API會話已過期時,它會以status code401和標頭'WWW-Authenticate'='Basic realm=x'進行響應。這會導致瀏覽器在客戶端腳本處理響應之前彈出基本身份驗證對話框。我想阻止此登錄對話框出現。有沒有什麼辦法在weblogic中配置它,或者在客戶端用javascript(angularjs)處理它?Weblogic REST API - 防止瀏覽器的基本身份驗證對話框401

我試着添加X-Requested-With: XMLHttpRequest來請求標題沒有運氣。 我已經試過在下面的問題中提到的解決方案。

123

這些都是導致彈出響應的報頭的內容。

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=...... 
+0

你在你的angularjs代碼中使用httpInterceptor。看起來你在攔截器中發現了401作爲響應,並重定向到登錄頁面或登錄彈出窗口? –

+0

@ManishSingh我沒有使用httpInterceptor。如果瀏覽器收到「status-code:401」和「WWW-Authenticate:Basic ....」的響應,瀏覽器的登錄對話框將會彈出。瀏覽器將在執行任何JavaScript之前捕獲響應。 – pahan

+0

這是服務器上的問題。最好的方法是禁用服務器上的基本身份驗證。如果你不能這樣做,你可以設置一個代理來改變標頭,所以它們不會被瀏覽器註冊 – Kliment

回答

0

我快速創建我的終點401響應:https://edeen.pl/401.php 當您嘗試訪問,它會打開對話,但它不具有角$ HTTP服務發生http://plnkr.co/edit/rOWLjyjNJX5FO2HR0tJM

angular.module('plunker', []) 
 
    .controller('MainCtrl', function($http) { 
 
    $http.get('https://edeen.pl/401.php').error(function(error) { 
 
     console.log(error) 
 
    }) 
 
    });
<!DOCTYPE html> 
 
<html ng-app="plunker"> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
</head> 
 

 
<body ng-controller="MainCtrl"> 
 

 
</body> 
 

 
</html>

+0

感謝你的回答。我也爲我的請求使用了'$ http'角色...在你的plnkr中,響應的狀態碼是'401'和'WWW-Authenticate:Basic .....'標題,但是身份驗證彈出窗口不出現。爲什麼? – pahan

+0

你可以發佈你的電話標題嗎?這可能會有所幫助,或嘗試從您的代碼到達我的終端,它啓用了CORS – maurycy

+0

我編輯了問題並添加了響應標頭。當我從我的代碼到達終端時,彈出窗口不會出現。無論如何,我的應用程序是http – pahan