2011-12-24 71 views
4

Jquery Ajax JSONP錯誤沒有解僱

 
error not firing. but its showing on firebug 
HTTP 500 error : 
jQuery15105771912402844872_1324698623378({"Message":"Master Order \u0027MS1100014\u0027 customer name not provide.","StackTrace":" at SimWeb.SimWebGuard.APICheck(String Token, String PublicKey, String ServiceName, String ServiceParam) in D:\Documents\Visual Studia 2010\Project\SimWeb\SimWeb\API\SimWebGuard.asmx.vb:line 249","ExceptionType":"System.Exception"});

jquery version 1.5.1

$.ajax({ crossDomain: true, cache: false, type: "GET", url: _url, data: _data, dataType: "jsonp", contentType: 'application/json; charset=utf-8', success: if_complete, jsonp: "callback", complete: function (requestState) { basicjs_ajaxCounter = basicjs_ajaxCounter - 1; $(".AjaxStatus").html("<img src='" + basicjs_ajaxLoadingImg + "' /> Working " + basicjs_ajaxCounter + " request(s)..."); if (basicjs_ajaxCounter == 0) $(".AjaxStatus").hide(); }, error:function (xhr, ajaxOptions, thrownError){ alert(xhr.status); alert(thrownError); } });

回答

6

這是因爲服務器返回500響應。 請參閱jsfiddle。如果你使用_url2,它會工作文件,但是,使用_url會給你你觀察到的行爲。這是jsonp實現中已知的故障。 See this question。正如建議那裏,你可以嘗試使用jquery-jsonp或只是爲了避免從您的服務器500響應。

+0

thanx for jsfiddle。我會檢查這 – printf 2011-12-24 05:42:24

+0

mm .. jquery-jsonp正在工作。但只是返回「錯誤」。這是jsonp的限制:(我使用舊/慢風格來處理這個問題 - 發送結果或者可能是錯誤信息,它花了我3天在公衆假期努力改變所有的web服務,無論如何,thanx回答 – printf 2011-12-27 12:29:35

+1

大聲笑只是避免500響應從你的服務器。什麼是實際的解決方案。雖然:) – f0ster 2013-01-17 22:02:17

0

我嘗試了所有可能的方法,並達成了最終結論,即無法使用jsonp處理服務器內部錯誤500狀態。一種可能的解決方法是使用超時功能,並在超時後執行所有您希望在錯誤時執行的操作。但是,這不是一個好的解決方案。你需要從服務器端處理這個不發送500內部服務器錯誤。