Angularjs Weblogic REST API-防止浏览器';401上的基本身份验证对话框

Angularjs Weblogic REST API-防止浏览器';401上的基本身份验证对话框,angularjs,rest,weblogic,basic-authentication,Angularjs,Rest,Weblogic,Basic Authentication,我在weblogic中部署了一个web应用程序。我正在使用angularJS对我的web应用程序中的weblogic restapi进行rest调用。当weblogic REST API会话过期时,它会以状态代码:401和标题'WWW-Authenticate'='Basic realm=x'进行响应。这会导致浏览器在客户端脚本处理响应之前弹出“基本身份验证”对话框。我想阻止出现此登录对话框。有没有什么方法可以在weblogic中配置它,或者在客户端用javascript(angularjs)处

我在weblogic中部署了一个web应用程序。我正在使用
angularJS
对我的web应用程序中的
weblogic restapi
进行rest调用。当
weblogic REST API
会话过期时,它会以
状态代码
401
和标题
'WWW-Authenticate'='Basic realm=x'
进行响应。这会导致浏览器在客户端脚本处理响应之前弹出“基本身份验证”对话框。我想阻止出现此登录对话框。有没有什么方法可以在weblogic中配置它,或者在客户端用javascript(angularjs)处理它

我尝试将
X-request-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=......

我已在端点快速创建了401响应: 当您尝试访问时,它会打开对话框,但在使用$http服务时不会发生这种情况

angular.module('plunker',[])
.controller('MainCtrl',函数($http){
$http.get('https://edeen.pl/401.php)。错误(函数(错误){
console.log(错误)
})
});


谢谢你的回答。我还使用angular
$http
处理我的请求。。。在您的plnkr中,响应具有状态代码
401
WWW-Authenticate:Basic….
标题,但仍不会出现身份验证弹出窗口。为什么?你能把电话的标题贴出来吗?这可能会有所帮助,或者尝试从您的代码到达我的端点,这是CORS enabledI编辑问题并添加响应标题。当我从代码到达您的端点时,弹出窗口不会出现。无论如何,我的应用程序是httpI,我已经用我的plunk做过实验,弹出窗口只在我使用JSONP的情况下出现,你使用的是什么版本?您是否将对我的端点的调用的请求头与您的进行了比较?一定有区别(您可以将我的端点与http结合使用。Angular版本为1.2.32。我没有使用JSONP。我在问题中添加了请求头。我在您的响应中看到了许多附加头。但正如我在问题中提到的,因为我使用的是weblogic,所以我无法对响应做任何处理。您在angularjs代码中使用了httpInterceptor吗?看起来类似于您在interceptor中找到401作为响应并重定向到登录页面或登录弹出窗口?@ManishSingh我没有使用httpInterceptor。如果浏览器接收到带有
状态代码:401
WWW Authenticate:Basic….
的响应,浏览器的登录对话框将弹出。浏览器将在任何javascript之前捕获响应已执行。这是服务器上的一个问题。最好的方法是在服务器上禁用基本身份验证。如果无法做到这一点,则可以设置一个代理,稍微更改标头,使其不被服务器注册browser@Kliment如何更改weblogic中的身份验证类型?@pahan我不知道weblogic是如何工作的,但通过一些研究,我发现您必须设置一个配置文件。如果您在服务器中没有访问权限,则始终可以设置一个简单的代理,该代理将重写标头