我在weblogic中部署了一个Web应用程序。我正在使用angularJS
在我的网络应用程序中对weblogic REST API
进行休息调用。当weblogic REST API
会话过期时,它会以status code
:401
和标题'WWW-Authenticate'='Basic realm=x'
进行回复。这会导致浏览器在客户端脚本处理响应之前弹出基本身份验证对话框。我想阻止此登录对话框出现。有没有办法在weblogic中配置它或使用javascript(angularjs)在客户端处理它?</ p>
我尝试添加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=......
答案 0 :(得分:0)
我已经在我的终端快速创建了401响应:https://edeen.pl/401.php 当您尝试访问时,它将打开对话框,但使用angular $ 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)
})
});
&#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;