一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - 排除JQuery通過(guò)HttpGet調(diào)用WebService返回Json時(shí)“parserror”錯(cuò)誤

排除JQuery通過(guò)HttpGet調(diào)用WebService返回Json時(shí)“parserror”錯(cuò)誤

2019-09-20 13:59asp.net教程網(wǎng) ASP.NET教程

排除JQuery通過(guò)HttpGet調(diào)用WebService返回Json時(shí)“parserror”錯(cuò)誤的解決方法。

JQuery大家都經(jīng)常用,以前用的時(shí)候沒(méi)有注意什么。最近本人在使用JQuery通過(guò)HttpGet方式調(diào)用WebService時(shí),卻發(fā)現(xiàn)服務(wù)端并非如人所愿返回json數(shù)據(jù),而是返回錯(cuò)誤提示:parserror。 
如今問(wèn)題被順利解決,下面是解決過(guò)程 

首先看客戶端使用JQuery調(diào)用WebService的代碼: 

復(fù)制代碼代碼如下:


getHellobyAjax: function(callabckFun) { 
$.ajax({ 
type: "GET", 
url: "WebService.asmx/HelloWorld", 
//contentType: "application/json; charset=utf-8", 
//data:"{}", 
cache: false, 
dataType: "json", 
success: function(msg) { 
if (callabckFun) { 
callabckFun(msg); 

else { 
alert("Not exists callback function."); 

}, 
error: function(obj, message) { 
alert(message); 

}); 


服務(wù)端,WebService的代碼為: 

復(fù)制代碼代碼如下:


[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string HelloWorld() { 
return "Hello World"; 


使用Fiddler跟蹤,發(fā)現(xiàn)客戶端調(diào)用服務(wù)器方法后,服務(wù)器返回的數(shù)據(jù)為XML格式。Why? 明明自己已經(jīng)在方法屬性上指明返回json,但是系統(tǒng)卻還是我行我素照常返回XML呢? 
到此,大家的眼睛都是雪亮的。海內(nèi)外的網(wǎng)友一致指出.NET 3.5平臺(tái)是需要檢查contentType參數(shù)的,于是將上面代碼中的代碼注釋去除,重新運(yùn)行。這時(shí)又出現(xiàn)error錯(cuò)誤。用Fiddler一查,發(fā)現(xiàn)是服務(wù)器返回了500錯(cuò)誤。具體錯(cuò)誤為: 

復(fù)制代碼代碼如下:


{"Message":"試圖使用 GET 請(qǐng)求調(diào)用方法“HelloWorld”,但不允許這樣做。","StackTrace":" 在 System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n 在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"} 


可是,按理說(shuō),我已經(jīng)在web.config文件中對(duì)WebService做了相應(yīng)的配置,為什么服務(wù)器還是不允許使用GET方式調(diào)用呢?無(wú)奈,將UseHttpGet屬性加上,并設(shè)置其為true,再祭出Fiddler一查,OK,服務(wù)器返回了json格式的數(shù)據(jù)。 

再一看微軟的代碼注釋,有如下一段,正好解釋了上面的錯(cuò)誤提示: 

復(fù)制代碼代碼如下:


// true if the method is invoked by using the HTTP GET command; false if the 
// method is invoked by using the HTTP POST command. The default is false. 


那么為什么Web.config已經(jīng)允許使用GET,卻不起作用呢?這只能解釋為:Web.config文件中的配置只是配置允許WebService接收Get請(qǐng)求,具體到每一個(gè)方法時(shí),還必須要配置該方法的調(diào)用方式才行(如有錯(cuò)誤,請(qǐng)指出。謝謝!!)。 
有人回復(fù): 
將ws的scriptmethod那句改為:[System.Web.Script.Services.ScriptService] 
js中啟用content type 
文章出處:www.cnblogs.com/jizhong

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 齐天大性之七仙女欲春迅雷链接 | 国内久久精品视频 | 天天射夜夜爽 | 娇喘嗯嗯 轻点啊视频福利 九九九九在线精品免费视频 | 男人躁女人过程 | 99久久精品6在线播放 | 亚洲 欧美 国产 在线观看 | 大奶妈咪女教师 | 暖暖视频高清图片免费完整版 | 高清在线观看免费 | 女明星放荡高h日常生活 | 免费人成网址在线观看国内 | 激情亚洲| 国产视频久久久久 | 精品乱lun小说 | 国产欧美精品一区二区三区四区 | 国产乱妇无码大片在线观看 | 教师系列 大桥未久在线 | 色综合久久综合网欧美综合网 | 果冻传媒九一制片厂网站 | 色在线看 | 欧美xxoo做爰猛烈视频 | 男女视频在线观看 | 亚洲精品高清中文字幕完整版 | 日韩欧美国产成人 | 美女口述又粗又大感觉 | 国产亚洲福利精品一区二区 | www久久久| 日本xxwwwxxxx | 美女操批| 日本xxxxxx片免费播放18 | 99久久一区二区精品 | www.四虎在线 | 精品无人区乱码1区2区3区免费 | 果冻传媒在线视频观看免费 | 69日本xxxhd| 色老板最新网站视频地址 | 婷婷在线成人免费观看搜索 | 国产chinese男同gay | 亚欧综合 | 免费国产之a视频 |