jqueryから単純なWCFサービスを利用しようとすると特有の問題が発生します。以下のコードを参照してください。
$(document).ready(function () {
// Initialize the carousel on the header part of the page
$("#myCarousel").carousel({
interval: 2000
});
// The handler for the submit button (login form)
$("#submit").click(function () {
var sendData = '{"username": "' +
$("#usernameTB").val() +
'", "password": "' +
CryptoJS.MD5($("#passwordTB").val()) +
'"}';
$.ajax("Services/LoginUser.svc/Login", {
cache: false,
type: "POST",
data: sendData,
contentType: "application/json; charset=utf-8",
dataType: "json",
processData: true,
complete: ServiceCompleted
});
});
});
function ServiceCompleted(data) {
alert("Response: " + data.responseText);
}
IEからこのコードを使用すると、チャームのように機能します。つまり、呼び出しが実行され、期待どおりの結果が返されます。以下の要求/応答のフィドラーダンプを参照してください。
POST http://localhost/CanDoIT/Services/LoginUser.svc/Login HTTP / 1.1 受け入れる:application / json、text / javascript、* / *; q = 0.01 コンテンツタイプ:application / json; charset = utf-8 X-Requested-With:XMLHttpRequest リファラー:http://localhost/CanDoIT/default.htm Accept-Language:nl-NL、en-US; q = 0.5 Accept-Encoding:gzip、deflate ユーザーエージェント:Mozilla / 5.0(互換性、MSIE 9.0、Windows NT 6.1、WOW64、Trident / 5.0) ホスト:ローカルホスト コンテンツの長さ:64 接続:Keep-Alive プラグマ:キャッシュなし {"ユーザー名": ""、 "パスワード": "d41d8cd98f00b204e9800998ecf8427e"} HTTP / 1.1 200 OK キャッシュ制御:プライベート コンテンツの長さ:10 コンテンツタイプ:application / json; charset = utf-8 サーバー:Microsoft-IIS / 7.5 X-AspNet-バージョン:4.0.30319 X-Powered-By:ASP.NET 日付:2012年10月29日月曜日09:31:15 GMT {"d":null}
Chromeを使用して同じことを行うと、次の要求/応答ダンプが表示されます。
POST http://localhost/CanDoIT/Services/LoginUser.svc/Login HTTP / 1.1 ホスト:ローカルホスト 接続:キープアライブ コンテンツの長さ:64 発信元:http:// localhost X-Requested-With:XMLHttpRequest ユーザーエージェント:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.4(KHTML、Geckoなど)Chrome / 22.0.1229.94 Safari / 537.4 コンテンツタイプ:application / json; charset = UTF-8 受け入れる:application / json、text / javascript、* / *; q = 0.01 リファラー:http://localhost/CanDoIT/default.htm? Accept-Encoding:gzip、deflate、sdch Accept-Language:nl-NL、nl; q = 0.8、en-US; q = 0.6、en; q = 0.4 Accept-Charset:ISO-8859-1、utf-8; q = 0.7、*; q = 0.3 {"ユーザー名": ""、 "パスワード": "d41d8cd98f00b204e9800998ecf8427e"} HTTP / 1.1 200 OK キャッシュ制御:プライベート コンテンツの長さ:10 コンテンツタイプ:application / json; charset = utf-8 サーバー:Microsoft-IIS / 7.5 X-AspNet-バージョン:4.0.30319 X-Powered-By:ASP.NET 日付:2012年10月29日月曜日09:30:27 GMT {"d":null}
現在、アラートには{"d":null}テキストが表示されません。
誰かが私がresponseTextを使用するのを妨げている違いが何であるか知っていますか?