我使用jQuery调用一个.Net Web服务,如下所示:
var service_url = "https://example.com/myservice.asmx"
$.ajax({
type: "GET",
url: service_url,
dataType: "xml",
data: "ParamId=" + FormId.value,
processData: false,
error: function(XMLHttpRequest, textStatus, errorThrown) { ajaxError(XMLHttpRequest, textStatus, errorThrown); },
success: function(xml) { DoSomething(xml); }
});
现在我想在Windows身份验证中 Package “https://example.com/myservice.asmx“。我如何使用jQuery/javascript将凭据传递给服务?
理想情况下,我希望使用当前用户的凭据,但如果需要,我可以对所有服务呼叫使用1个主凭据。
2条答案
按热度按时间wmomyfyw1#
我想现在你可以只设置请求对象的
withCredentials
属性为true
,例如:这使得现有的认证头/cookie在 AJAX 请求中沿着,对我来说很有效。不需要做你自己的Base编码等等。
wxclj1h52#
看起来您需要手动使用base64身份验证数据设置请求头。
说明如下:http://coderseye.com/2007/how-to-do-http-basic-auth-in-ajax.html
您首先需要从此处获取以下代码:http://www.webtoolkit.info/javascript-base64.html执行base64编码
然后,您需要代码来构造auth数据,它只是用户和密码的base64:
然后在发出请求之前用jQuery添加头: