我有一个 jquery ajax 调用需要传递一个 auth 标头。我尝试了几种不同的方法。但是我的ajax调用目前看起来像这样......
$.ajax({
headers: {"Authorization": "Basic YgBhAHMAaQBjACAAbAAxAHQAdABsADMAcAAxAGcAbAAxAHQAdABsADMAcAAxAGcAOgBsADMAKwBtADMAMQBuAA=="},
url: fetchurl,
type: 'GET',
dataType: 'json',
async: false,
contentType: 'application/json; charset=utf-8',
success: function (data) {
$.each(data, function (key, val) {
$('<option/>').attr('value', val.ProductCd)
.html(val.ProductCd + " - " + val.Description)
.appendTo(productselect);
});
$.unblockUI();
},
error: function (error, textStatus, errorThrown) {
alert(textStatus);
}
});
我认为我的解码问题可能与谁在进行编码有关,所以我通过 C# 类生成了该令牌并将其粘贴到我的脚本代码中。
我还尝试使用插件在 jquery 中进行编码并使用 beforesend 回调来设置标题。
在这里我尝试解码:
string authToken = actionContext.Request.Headers.Authorization.Parameter;
string decodedToken = Encoding.UTF8.GetString(Convert.FromBase64String(authToken));
string username = decodedToken.Substring(0, decodedToken.IndexOf(":"));
string password = decodedToken.Substring(decodedToken.IndexOf(":") + 1);
我的结果几乎总是一样的。
解码身份验证头后,我得到垃圾:“�w0u�\n�ZXNTLMSSP\0\0\0\0\0\0\0\0X\0\0\0\0\0\0\0X\0\ 0\0\0\0\0\0X\0\0\0\0\0\0\0X\0\0\0\0\0\0\0X\0\0\0\0\0\ 0\0X\0\0\0��\0\0\0I���ۛ��l�Y��#��\0\0\0��P-\"��\0\0\ 0\0"