Weblogic REST API - 在401上阻止浏览器的基本身份验证对话框

时间:2016-11-24 06:26:17

标签: angularjs rest weblogic basic-authentication

我在weblogic中部署了一个Web应用程序。我正在使用angularJS在我的网络应用程序中对weblogic REST API进行休息调用。当weblogic REST API会话过期时,它会以status code401和标题'WWW-Authenticate'='Basic realm=x'进行回复。这会导致浏览器在客户端脚本处理响应之前弹出基本身份验证对话框。我想阻止此登录对话框出现。有没有办法在weblogic中配置它或使用javascript(angularjs)在客户端处理它?<​​/ p>

我尝试添加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=......

1 个答案:

答案 0 :(得分:0)

我已经在我的终端快速创建了401响应:https://edeen.pl/401.php 当您尝试访问时,它将打开对话框,但使用angular $ http服务http://plnkr.co/edit/rOWLjyjNJX5FO2HR0tJM

不会发生这种情况

&#13;
&#13;
angular.module('plunker', [])
  .controller('MainCtrl', function($http) {
    $http.get('https://edeen.pl/401.php').error(function(error) {
      console.log(error)
    })
  });
&#13;
<!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>
&#13;
&#13;
&#13;