2012-11-13 72 views
-1

這個js消防服務器端的api調用和C#成功返回,但它在js中出現錯誤函數。我無法看到響應錯誤的結果。在JSONP中觸發錯誤事件

JS

$.ajax({ 
    url: "http://127.0.0.1:81/api/sites/GetDomainAvailability?apikey=asfasfdsf&callback=?", 
    data: { subDomain: subDomain, parentDomain: parentDomain, resellerId: resellerId }, 
    contentType: 'application/json; charset=utf-8', 
    accept: 'application/json', 
    dataType: 'json', 
    success: function (response) { 
     if (callback) 
      callback(response.d); 
    }, 
    error: function (response) { 
     if (callback) 
      error(response.d); 
    } 
}); 

C#代碼

[HttpGet] 
     public HttpResponseMessage GetDomainAvailability(string subDomain, string parentDomain, string resellerId) 
     { 
      if (ModelState.IsValid) 
      { 
       var domain = string.Format("{0}.{1}", subDomain, parentDomain); 

       var manager = new CloudSitesManager(); 
       var isDomainAvailable = manager.GetDomainAvailability(domain); 

       var response = Request.CreateResponse(HttpStatusCode.OK, isDomainAvailable); 
       return response; 
      } 
      else 
      { 
       return Request.CreateResponse(HttpStatusCode.BadRequest); 
      } 
     } 
+0

您的問題的標題是「JSONP」,但是,您的JQuery設置將「JSON」指定爲數據類型 - 您能否澄清您試圖實現的目標。另外,您是否a)嘗試調試以確保您的ModelState.IsValid爲true並且b)嘗試查看由該調用生成的實際JSON響應?這可能會提供一些線索......如果(a)ModelState無效,那麼您將點擊錯誤事件,並且(b)如果它不是有效的JSON被返回,那麼您可能會遇到錯誤事件。 – tristankoffee

回答

0

你需要確保你在你的web.config(和任何WCF聲明)使用includeExceptionDetailInFaults = 「真」。以DEBUG模式編譯它以確保您獲得最大的異常詳細信息。

編輯:當它去生產時再次關閉!