試してみると、$.ajax に contentType: "application/json; charset=utf-8" オプションを追加するだけです。これは、.net 3.5 以降では contentType をチェックする必要があるため、dataType のみを指定する場合です。 net JSON は返されないため、当然のことながら、リクエストは JSON データをリクエストできません。正しい書き方は次のようになります:
var url = "/Services /AccountService.asmx/UserExists";
var userName = $("#txtUserName").val();
$.ajax({
type: "POST",
url: url,
data: '{userName:"' userName '"}',
dataType: "json",
success: function (json) {
if (json. d == true) {
$("#submit").removeAttr("無効");
return;
}
$("#submit").attr("無効", "無効");
}
});
コードをコピーしました
コードは次のとおりです。 var url = "/Services/AccountService.asmx/UserExists";
var userName = $("#txtUserName").val(); 🎜>$.ajax({
type: "POST",
url: url,
data: '{userName:"' userName '"}',
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (json) {
if (json.d == true) {
$("#submit"). RemoveAttr("無効");
return;
$("#submit").attr("無効", "無効"); >
しかし、$.get、$.getJSON、$.post を使用すると、JSON データを取得できません。
$.get code
コードをコピーします
コードは次のとおりです。
$( "#submit").removeAttr("無効");
return;
}
$("#submit").attr("無効", "無効");
}," json");
$.getJSON コード
コードをコピー
コードは次のとおりです。
$( "#submit").removeAttr("無効");
return;
}
$("#submit").attr("無効", "無効");
$.post code
コードをコピー
コードは次のとおりです:
var url = "/Services/AccountService.asmx/UserExists";
}
$("#submit").attr(" 無効", "無効")
},'json');
HttpWatch を使用して表示しますリクエストによって返されるデータは次のとおりです:
コードをコピー
コードは次のとおりです:
false jQuery.extend の関連コードを確認します。
jQuery.extend コードをコピー
コードは次のとおりです。 :
jQuery.extend({
get: function( url, data, callback, type ) {
// データ引数が省略された場合は引数をシフトします
if ( jQuery.isFunction( data ) ) {
type = タイプ ||
callback = データ;
data = null;
return jQuery.ajax({
type: "GET",
url: URL,
data: データ,
成功: コールバック,
dataType: タイプ
});
getScript: function( url, callback ) {
return jQuery.get(url, null, callback, "script");
},
getJSON: function( url, data, callback ) {
return jQuery.get(url, data, callback, "json");
},
post: function( url, data, callback, type ) {
// データ引数が省略された場合は引数をシフトします
if ( jQuery.isFunction( data ) ) {
type = タイプ ||
callback = データ;
}
return jQuery.ajax({
type: "POST" >url: URL、
data: データ、
成功: コールバック、
dataType: タイプ
});
原因は、.net 3.5 以降必要な contentType を実行して、結果が json でない場合は、json を返さない、get、getJSON、post扩展都再次调用了 ajax,ただし只传了dataType パラメータ、.net 3.5 では contentType が公開され、json ではなく、xml が返されます。