2008-09-17 65 views
10

我確定來自服務器的JSON是有效的(手動進行ajax調用),但我真的很想使用JQuery。我還確定使用螢火蟲發送到服務器的「發佈」網址是正確的。但是,錯誤回調仍然被觸發(parsererror)。我也嘗試過數據類型:文本。無法從JQuery接收JSON ajax調用

我還有其他選擇嗎?

$(function() { 
    $("#submit").bind("click", function() { 
     $.ajax({ 
      type: "post", 
      url: "http://myServer/cgi-bin/broker" , 
      datatype: "json", 
      data: {'start' : start,'end' : end}, 
      error: function(request,error){ 
       alert(error); 
      }, 
      success: function(request) { 
       alert(request.length); 
      } 
     }); // End ajax 
    }); // End bind 
}); // End eventlistener 

回答

19

這裏有一些建議,我會嘗試:

1)已指定要 '的dataType' 的 '數據類型' 選項(區分大小寫的,我相信)

2)嘗試使用該「的contentType」選項,所以:

contentType: "application/json; charset=utf-8" 

我不知道有多少,這將有助於它在請求您的文章網址中使用,而不是在響應中。 請參見本文的詳細信息:http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax (它的asp.net寫的,但可以適用)

3)三重檢查您的文章網址的輸出和運行通過JSON驗證器的輸出只是爲了絕對確保它是有效的並且可以被解析成JSON對象。 http://www.jsonlint.com

希望這有助於一些!

+0

非常感謝您花時間回答。它是我作爲數據類型的dataType選項 – 2008-09-17 03:41:18

+7

只需要注意,將dataType設置爲「json」會自動將contentType設置爲「application/json」。 – bhollis 2008-09-20 04:00:23

+0

@BHR +1根據文檔正確。然而,也許有用的要注意:我正在使用jquery 1.6.4 atm,並發現我需要明確設置contentType:「application/json; charset = utf-8」 – zack 2012-02-14 18:15:07

0

數據參數錯誤。下面是工作的例子:

數據:{指數:ddl.selectedIndex},

這contructs與值ddl.selectedIndex屬性稱爲索引的對象。

您需要從您的數據參數行刪除引號

好運 一個

1

爲什麼myResult,而不是request

success: function(request) { 
       alert(myResult.length); 
      }