如何从AJAX调用触发浏览器的"基本身份验证"对话框?

Ric*_*ard 14 javascript ajax wcf basic-authentication wcf-security

我正在使用基本身份验证来保护仅在公司网络内部公开的一组WCF Web服务,我想知道当Web服务返回401时,是否有办法触发浏览器的凭据对话框从AJAX调用中显示错误?

目前,我的AJAX调用将401作为常规失败请求接收,并且不会提示浏览器执行任何操作.但是,如果我使用相同的URI并将其复制粘贴到浏览器的URL栏中,则返回的401会正确触发"基本身份验证"对话框.

有没有办法让AJAX回调告诉浏览器弹出该对话框?

Suf*_*ory 7

使用您的网址动态创建iframe并附加到文档.它会触发身份验证表单.jQuery snipet添加iframe

$('<iframe src="your_url"></iframe>').appendTo('body')
Run Code Online (Sandbox Code Playgroud)

这里有一个非常简单的例子:

var url = 'your_url_here';
$.ajax({
    url: url,
    error: function(response){
        if(response.status==401){           
            $('<iframe src="'+url+'"></iframe>').appendTo('body');          
        }
    },
    success:function(){
        //your success code here
    }
});
Run Code Online (Sandbox Code Playgroud)