濮阳杆衣贸易有限公司

主頁 > 知識庫 > 排除JQuery通過HttpGet調(diào)用WebService返回Json時“parserror”錯誤

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

熱門標(biāo)簽:凱立德地鐵站地圖標(biāo)注 上海400客服電話怎么申請 滄州電銷外呼系統(tǒng)價格 溫州外呼系統(tǒng)招商 天津電銷外呼系統(tǒng)違法嗎 400電話個人能不能辦理 銀行信貸電話機(jī)器人 合肥ai電銷機(jī)器人費用 手機(jī)外呼系統(tǒng)什么原理
JQuery大家都經(jīng)常用,以前用的時候沒有注意什么。最近本人在使用JQuery通過HttpGet方式調(diào)用WebService時,卻發(fā)現(xiàn)服務(wù)端并非如人所愿返回json數(shù)據(jù),而是返回錯誤提示: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平臺是需要檢查contentType參數(shù)的,于是將上面代碼中的代碼注釋去除,重新運行。這時又出現(xiàn)error錯誤。用Fiddler一查,發(fā)現(xiàn)是服務(wù)器返回了500錯誤。具體錯誤為:
復(fù)制代碼 代碼如下:

{"Message":"試圖使用 GET 請求調(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文件中對WebService做了相應(yīng)的配置,為什么服務(wù)器還是不允許使用GET方式調(diào)用呢?無奈,將UseHttpGet屬性加上,并設(shè)置其為true,再祭出Fiddler一查,OK,服務(wù)器返回了json格式的數(shù)據(jù)。

再一看微軟的代碼注釋,有如下一段,正好解釋了上面的錯誤提示:
復(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請求,具體到每一個方法時,還必須要配置該方法的調(diào)用方式才行(如有錯誤,請指出。謝謝?。。?
有人回復(fù):
將ws的scriptmethod那句改為:[System.Web.Script.Services.ScriptService]
js中啟用content type
文章出處:www.cnblogs.com/jizhong
您可能感興趣的文章:
  • json error: Use of overloaded operator [] is ambiguous錯誤的解決方法
  • nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir ''D:\Develop\nodejs\node_global''at Error
  • JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL錯誤的解決方法
  • JS提示:Uncaught SyntaxError:Unexpected token ) 錯誤的解決方法
  • 用window.onerror捕獲并上報Js錯誤的方法
  • IE8 下的Js錯誤HTML Parsing Error...
  • javascript Error 對象 錯誤處理
  • JS常見錯誤(Error)及處理方案詳解

標(biāo)簽:七臺河 洛陽 酒泉 溫州 赤峰 怒江 白城 金華

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《排除JQuery通過HttpGet調(diào)用WebService返回Json時“parserror”錯誤》,本文關(guān)鍵詞  排除,JQuery,通過,HttpGet,調(diào)用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《排除JQuery通過HttpGet調(diào)用WebService返回Json時“parserror”錯誤》相關(guān)的同類信息!
  • 本頁收集關(guān)于排除JQuery通過HttpGet調(diào)用WebService返回Json時“parserror”錯誤的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    虞城县| 武宁县| 乡城县| 新沂市| 兴城市| 兰考县| 萨迦县| 海晏县| 扎囊县| 嘉义县| 新乡县| 高州市| 政和县| 额尔古纳市| 安新县| 黄陵县| 元谋县| 泸州市| 临漳县| 宁明县| 原平市| 武夷山市| 化州市| 孟村| 白银市| 正阳县| 临清市| 都昌县| 六枝特区| 论坛| 大渡口区| 罗定市| 龙川县| 老河口市| 肇源县| 乳源| 望奎县| 罗江县| 云林县| 怀宁县| 绥阳县|