我正在尝试访问具有 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 身份验证来实际实现这一点?
最佳答案
最后我做了什么:
$.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+/=",
如果您将登录名/密码与其他内容放在一起,就会出现问题。 :)
关于jquery - PhoneGap - 使用 JQuery 的 Windows 身份验证请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11152630/