最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2011年10月18日 21:57:33   作者:  
排除JQuery通過HttpGet調(diào)用WebService返回Json時(shí)“parserror”錯(cuò)誤的解決方法。
JQuery大家都經(jīng)常用,以前用的時(shí)候沒有注意什么。最近本人在使用JQuery通過HttpGet方式調(diào)用WebService時(shí),卻發(fā)現(xiàn)服務(wù)端并非如人所愿返回json數(shù)據(jù),而是返回錯(cuò)誤提示:parserror。
如今問題被順利解決,下面是解決過程

首先看客戶端使用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"}

可是,按理說,我已經(jīng)在web.config文件中對(duì)WebService做了相應(yīng)的配置,為什么服務(wù)器還是不允許使用GET方式調(diào)用呢?無奈,將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

相關(guān)文章

最新評(píng)論

镇安县| 沧州市| 棋牌| 芒康县| 威宁| 阳江市| 平阴县| 安仁县| 卓尼县| 河曲县| 兴隆县| 辉南县| 安康市| 海晏县| 宜昌市| 鹤庆县| 渝北区| 金寨县| 克什克腾旗| 新乐市| 布拖县| 南通市| 忻州市| 会理县| 扎赉特旗| 中超| 徐闻县| 新晃| 仁寿县| 衡南县| 肇东市| 安西县| 万载县| 刚察县| 丰台区| 三明市| 基隆市| 五河县| 八宿县| 邮箱| 阿尔山市|