PhoneGap - 使用JQuery进行Windows身份验证请求

时间:2012-06-22 08:24:11

标签: jquery ios web-services cordova windows-authentication

我正在尝试访问具有 Windows身份验证的网络服务。我基本上使用了this页面上写的大部分内容:

$.ajax({
    url: url,
    method: 'GET',
    async: true,
    data: {},
    dataType: 'json',
    crossDomain: true,
    xhrFields: {
        withCredentials: true
    },
    beforeSend: function(xhr) {
        // set authorization header
        xhr.setRequestHeader("Authorization", "Basic " + Base64.encode(username + ":" + password));
    },
    success: function(data){
                // success
    },
    error: function(request, status, error) {
        // handle problem
    }
});

我还在.plist文件中定义了外部主机。我的问题是我总是收到错误。为了使它变得更糟,错误函数没有任何结果,这有点有用(这个输出来自Firefox,简化):

Object { readyState=0, status=0, statusText="error"}

我也尝试过模拟器,但不是立即给我错误,我认为它超时了。我所看到的以及我正在使用的是使用基本身份验证的请求。那么有没有办法使用 Windows身份验证

实际实现这一点

2 个答案:

答案 0 :(得分:1)

最后我做了什么:

 $.ajax( {
                             url:webServiceLink,
                             method: "GET",
                             timeout:30000,
                             data: "{}",  
                             dataType: "xml",
                             beforeSend : function(req) {
                             req.setRequestHeader("Authorization", 
                                                  make_base_auth (username,password));                             
                             },
                             success: OnGetMemberSuccess,
                             error: OnGetMemberError
                             });
                      });

在我推出的外部主机中: *


更新1.0:再次停止工作......

更新2.0 发现问题:

base 64编码接受以下字符:

  

_keyStr:" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + / =",

如果您使用其他内容输入登录名/密码,则会出现问题。 :)

答案 1 :(得分:0)

您可能需要查看Access-Control-Allow-Headers