資源描述:
《jquery調(diào)用webservice返回json數(shù)據(jù)及參數(shù)設(shè)置注意問題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、jQuery調(diào)用WebService返回JSON數(shù)據(jù)及參數(shù)設(shè)置注意問題.NETFramework3.5的發(fā)布解決了WebService調(diào)用中json問題,本文將介紹jQuery調(diào)用基于.NETFramework3.5的WebService返冋J(rèn)SON數(shù)據(jù),感興趣的朋友可以了解下,希望本文対你有所幫助.NETFramework3.5的發(fā)布解決了WebService調(diào)用中json問題,本文將介紹jQuery調(diào)用基T.NETFramework3.5的WebService返回JSON數(shù)據(jù),另外還要介紹一下用jQuery調(diào)用WebSe
2、rvice的參數(shù)設(shè)置及設(shè)置不當(dāng)所出現(xiàn)的問題,還有出現(xiàn)問題的原因jQuery調(diào)用WebService網(wǎng)上的介紹也比較多,最近的項(xiàng)目中我也用到不少,一直都很少用.NETAjax,比較鐘情TjQuery調(diào)用請(qǐng)求WebService冇幾種方法,這主要說一下POST與GET方法,其實(shí)安全方法考慮不建議使用GET方法,下面就說一下用jquery調(diào)用WebService的參數(shù)設(shè)置及設(shè)置不當(dāng)所出現(xiàn)的問題,還有出現(xiàn)問題的原因。我們這里只討論返回JSON數(shù)據(jù)的情況,相信大家都比較了解JSON格式的數(shù)據(jù)對(duì)于ajax的方便,不了解的可以從網(wǎng)上找一下
3、這方面的資料來看一下,這里就不多說了,或者我以后再寫一篇這方血的文章。下面是jQuery調(diào)用WebService服務(wù)器端代碼:WS1和WS2方法為POST方法請(qǐng)求的方法,所以設(shè)置UseHttpGet為false,WS3與WS4為GET方法請(qǐng)求的方法,設(shè)置UseHttpGet為true。復(fù)制代碼代碼如卞:usingSystem.Web.Script.Services;usingSystem.Web.Services;namespaceWebService35IllWebServicel的摘耍說明III[WebService(N
4、amespace=")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfilel_l)][System.ComponentModel.Toolboxltem(false)]//若耍允許使用ASP.NETAJAX從腳木川調(diào)用此Web服務(wù),請(qǐng)取消對(duì)下行的注釋。[System.Web.Script.Services.ScriptService]publicclassWebServicel:System.Web.Services.WebService{[WebMethod][Sc
5、riptMethodfUseHttpGet=false)]publicstringWS1(){return"POST無參數(shù)”;}[WebMethod][ScriptMethodfUseHttpGet=false)]publicstringWS2(strings){returns;}[WebMethod][ScriptMethodfUseHttpGet=true)]publicstringWS3()return“GET無參數(shù)”;}[WebMethod][ScriptMethodfUseHttpGet=true)]publics
6、tringWS4(strings){returns;}}}復(fù)制代碼代碼如下:functionfunl(){$.ajax({url:,,WebServicel.asmx/WSl,,/type:"POST",dataType:njsorf:contentType:“applicationjiujiu360.com/json;charset=utf-8nzdata:success:function(json){alertfjson.d);},error:function(x,e){alert(x.responseText);Lco
7、mplete:function(x){alert(x.responseText);)});}上面的JS方法為用POST方法請(qǐng)求無參數(shù)的WebService方法的代碼,不過以上代碼并不能返回正確的JSON格式的數(shù)據(jù),而是返回XML格式的數(shù)據(jù),回為要使WebService返回JSON格式的數(shù)據(jù),要在RequestHeaders屮設(shè)置Content-Type為application/json,有人要問了,你不設(shè)置了contentType為"application/json;charset=utf-8M了嗎?沒錯(cuò),是設(shè)置了,不過在j
8、query中,如果Content-Length為0或者沒有設(shè)置,它會(huì)忽略你設(shè)置的contentType的,我可以看下而的這個(gè)圖,這是抓取的RequestHeaders的數(shù)據(jù),可以看到Content-Length為0,并口沒有Content-Type,所WebService就不知道我們需要J