認証ヘッダーを渡す必要がある jquery ajax 呼び出しがあります。私はいくつかの異なるアプローチを試みました。しかし、現在、私の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"