跨域ajax调用windows身份验证工作在chrome和不工作在Firefox

Cross domain ajax call windows authentication working in chrome and not working in Firefox

本文关键字:工作 Firefox chrome ajax windows 身份验证 跨域 调用      更新时间:2023-09-26

我有一个使用windows身份验证的WCF服务,我用ajax调用这个服务。对于谷歌chrome浏览器,它是工作完美的凭据兑现,但在火狐我得到401未经授权。我希望firefox会弹出一个弹出框来填写我的凭据(就像我从浏览器调用服务时一样)。

我的javascript代码如下:

 var url = "http://localhost:8732/Domain.WebServices/MyService/web/MyFunction";
    $.ajax({
        type: "GET",
        url: url,
        crossDomain: true,
        processData: false,
        xhrFields: {
            withCredentials: true
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) { alert('failed'); },
        success: function (data) { onSuccess(data); }
    });

当凭证未兑现时,我如何使其在firefox中工作?

根据官方文档,您必须确保服务器响应Access-Control-Allow-Credentials: true报头,否则Firefox将拒绝任何响应。

我不确定firefox是否内置了显示弹出窗口的功能,你应该自己实现它。