ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery.get、jQuery.getJSON、jQuery.postがJSON_jqueryを返せない問題の解決方法

jQuery.get、jQuery.getJSON、jQuery.postがJSON_jqueryを返せない問題の解決方法

WBOY
WBOYオリジナル
2016-05-16 18:04:21997ブラウズ

試してみると、$.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




コードをコピーします


コードは次のとおりです。
var url = "/Services/AccountService.asmx/UserExists"; >var userName = $("#txtUserName").val (); $.get( url , { userName: userName } , function (json) { if ( json.d == true) {
$( "#submit").removeAttr("無効");
return;
}
$("#submit").attr("無効", "無効");
}," json");


$.getJSON コード




コードをコピー

コードは次のとおりです。

var url = "/Services/AccountService.asmx/UserExists"; var userName = $("#txtUserName").val (); $.getJSON( url , { userName: userName } , function (json) { if (json.d == true) {
$( "#submit").removeAttr("無効");
return;
}
$("#submit").attr("無効", "無効");


$.post code




コードをコピー


コードは次のとおりです:


var url = "/Services/AccountService.asmx/UserExists";
var userName = $("#txtUserName").val(); $.post( url , { userName: userName } , function (json) { if (json.d == true) { $("#submit").removeAttr("disabled"); ;
}
$("#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 が返されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。