jQuery.get、jQuery.getJSON、jQuery.post無(wú)法返回JSON問(wèn)題的解決方法
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("disabled");
return;
}
$("#submit").attr("disabled", "disabled");
}
});
更正后代碼
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("disabled");
return;
}
$("#submit").attr("disabled", "disabled");
}
});
但是在使用$.get、$.getJSON、$.post時(shí)確怎么也得不到JSON數(shù)據(jù)了,寫(xiě)法如下:
$.get代碼
var url = "/Services/AccountService.asmx/UserExists";
var userName = $("#txtUserName").val();
$.get(
url
, { userName: userName }
, function (json) {
if (json.d == true) {
$("#submit").removeAttr("disabled");
return;
}
$("#submit").attr("disabled", "disabled");
},"json");
$.getJSON代碼
var url = "/Services/AccountService.asmx/UserExists";
var userName = $("#txtUserName").val();
$.getJSON(
url
, { userName: userName }
, function (json) {
if (json.d == true) {
$("#submit").removeAttr("disabled");
return;
}
$("#submit").attr("disabled", "disabled");
});
$.post代碼
var url = "/Services/AccountService.asmx/UserExists";
var userName = $("#txtUserName").val();
$.post(
url
, { userName: userName }
, function (json) {
if (json.d == true) {
$("#submit").removeAttr("disabled");
return;
}
$("#submit").attr("disabled", "disabled");
},'json');
用HttpWatch查看請(qǐng)求返回的數(shù)據(jù)如下:
<?xml version="1.0" encoding="utf-8"?>
<boolean xmlns="http://tempuri.org/">false</boolean>
看一下jQuery.extend中有關(guān)代碼:
jQuery.extend
jQuery.extend({
get: function( url, data, callback, type ) {
// shift arguments if data argument was omited
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = null;
}
return jQuery.ajax({
type: "GET",
url: url,
data: data,
success: callback,
dataType: type
});
},
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 ) {
// shift arguments if data argument was omited
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = {};
}
return jQuery.ajax({
type: "POST",
url: url,
data: data,
success: callback,
dataType: type
});
}
});
原因就是.net 3.5以后要對(duì)contentType進(jìn)行檢查,如果不為json的話,就不會(huì)返回json,而get、getJSON、post擴(kuò)展都再次調(diào)用了ajax,但是只傳了dataType參數(shù),.net 3.5在檢查contentType時(shí)發(fā)現(xiàn)其不是json,便返回了xml.
相關(guān)文章
Jquery ajax執(zhí)行順序 返回自定義錯(cuò)誤信息(實(shí)例講解)
由于Jquery中的Ajax的async默認(rèn)是true(異步請(qǐng)求),如果想一個(gè)Ajax執(zhí)行完后再執(zhí)行另一個(gè)Ajax, 需要把a(bǔ)sync=false就可以了2013-11-11jQuery實(shí)現(xiàn)購(gòu)物車(chē)多物品數(shù)量的加減+總價(jià)計(jì)算
這篇文章主要介紹了jQuery實(shí)現(xiàn)購(gòu)物車(chē)多物品數(shù)量的加減+總價(jià)計(jì)算,需要的朋友可以參考下2014-06-06jQuery中 $ 符號(hào)的沖突問(wèn)題及解決方案
在jQuery中,$是jQuery的別名,為了書(shū)寫(xiě)方便,我們更習(xí)慣用$('#id')這一類(lèi)的方式來(lái)書(shū)寫(xiě)代碼。這篇文章給大家分享jQuery中 $ 符號(hào)的沖突問(wèn)題及解決方案,感興趣的朋友一起看看吧2016-11-11jquery設(shè)置css樣式的多種方法(總結(jié))
下面小編就為大家?guī)?lái)一篇jquery設(shè)置css樣式的多種方法(總結(jié))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02jquery.validate.js 多個(gè)相同name的處理方式
本文通過(guò)代碼給大家介紹了jquery.validate.js 多個(gè)相同name的處理方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-07-07瀏覽器打開(kāi)層自動(dòng)緩慢展開(kāi)收縮實(shí)例代碼
本文為大家介紹下層自動(dòng)緩慢展開(kāi)收縮在瀏覽器打開(kāi)時(shí)是如何實(shí)現(xiàn)的,主要用到了slideUp及slideDown等主要jquery方法,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07jquery實(shí)現(xiàn)頁(yè)面關(guān)鍵詞高亮顯示的方法
這篇文章主要介紹了jquery實(shí)現(xiàn)頁(yè)面關(guān)鍵詞高亮顯示的方法,實(shí)例分析了jQuery插件highlight實(shí)現(xiàn)高亮顯示的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03基于Jquery實(shí)現(xiàn)鍵盤(pán)按鍵監(jiān)聽(tīng)
本文介紹下,用jquery實(shí)現(xiàn)的滑動(dòng)效果,以及對(duì)鍵盤(pán)按鍵進(jìn)行監(jiān)聽(tīng)的例子,有需要的朋友,可以參考學(xué)習(xí)下2014-05-05JQuery 操作select標(biāo)簽實(shí)現(xiàn)代碼
我們經(jīng)常遇到要操作DOM元素,例如<select>,在Asp.net中Dropdownlist原型就是select。2010-05-05