友人、あなたがこの種の質問に何度も直面していることは知っています.Googleで検索しても答えが見つかりませんでした.さて、問題に取り掛かりましょう.
要件: jquery ajax リクエストを使用して、基本認証を有効にして WCF サービス GET API を呼び出します。
クライアント側のコード:
<script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="Scripts/Base64.js" type="text/javascript"></script>
<%--<script src="Scripts/jquery.base64.js" type="text/javascript"></script>--%>
<script type="text/javascript">
function make_base_auth(user, pass) {
var tok = user + ':' + pass;
var hash = Base64.encode(tok);
return "Basic " + hash;
}
$(document).ready(function () {
var username = 'user';
var password = 'ppp';
var auth = make_base_auth(username, password);
$.ajax({
type: "GET",
dataType: "jsonp",
contentType: "application/javascript",
xhrFields: {
withCredentials: true
},
cache: false,
crossDomain: true,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authentication", auth)
},
data: { 'inputData': "{PatientID:'12',FromDateTime:'05/21/2013 1:28:15 PM',ToDateTime:'05/21/2013 1:28:15 PM',ResponseType:'json',CompressResponse:'false'}" },
url:"http://192.168.15.160/RestAPI/Service.svc/GetMedicationValues",
success: function (jsonData) {
console.log(jsonData);
},
error: function (request, textStatus, errorThrown) {
console.log(request.responseText);
console.log(textStatus);
console.log(errorThrown);
}
});
});
</script>
問題 : クライアント アプリケーションの実行時にログイン ポップアップが表示されます。リクエスト ヘッダーで渡す資格情報に関係なく、ポップアップで正しい資格情報を提供した場合にのみ出力が得られます。.この問題を解決できた人はいますか? ありがとうございました。