国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

排除JQuery通過HttpGet調用WebService返回Json時“parserror”錯誤

2024-07-10 13:24:38
字體:
來源:轉載
供稿:網友
JQuery大家都經常用,以前用的時候沒有注意什么。最近本人在使用JQuery通過HttpGet方式調用WebService時,卻發現服務端并非如人所愿返回json數據,而是返回錯誤提示:parserror。
如今問題被順利解決,下面是解決過程

首先看客戶端使用JQuery調用WebService的代碼:

復制代碼 代碼如下:


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);
}
});


服務端,WebService的代碼為:

復制代碼 代碼如下:


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


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

復制代碼 代碼如下:


{"Message":"試圖使用 GET 請求調用方法“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"}


可是,按理說,我已經在web.config文件中對WebService做了相應的配置,為什么服務器還是不允許使用GET方式調用呢?無奈,將UseHttpGet屬性加上,并設置其為true,再祭出Fiddler一查,OK,服務器返回了json格式的數據。

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

復制代碼 代碼如下:


// 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已經允許使用GET,卻不起作用呢?這只能解釋為:Web.config文件中的配置只是配置允許WebService接收Get請求,具體到每一個方法時,還必須要配置該方法的調用方式才行(如有錯誤,請指出。謝謝!!)。
有人回復:
將ws的scriptmethod那句改為:[System.Web.Script.Services.ScriptService]
js中啟用content type
文章出處:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗源县| 镇安县| 灌阳县| 沛县| 高尔夫| 灵山县| 大英县| 当雄县| 盐亭县| 突泉县| 镇平县| 安乡县| 兴安盟| 新宁县| 浠水县| 保山市| 本溪市| 汾西县| 镇雄县| 裕民县| 达拉特旗| 白河县| 长岭县| 抚州市| 中卫市| 航空| 右玉县| 牡丹江市| 合山市| 陇西县| 神木县| 宝山区| 镇原县| 泰和县| 台北市| 金阳县| 高陵县| 外汇| 辽宁省| 灵宝市| 百色市|