2011-06-25 154 views
1

幫助將不勝感激。jQuery Ajax vs經典ASP返回數據

在我的ASP頁面我將返回此[{'id': '123'}]。如果你查看源代碼,那麼這就是你在頁面上看到的所有內容。所以有道理的是,當我做一個讓我能夠得到的ID。

我的代碼(這是我知道的作品,因爲我用它做對包含相同的數據平面文件一個得到所有我想現在要做的是動態創建的數據):

$.ajax({  
     type: "GET",  
     url: "http://localhost/GetCustNewID.asp?callback=?",  
     async: false,  
     dataType: "jsonp", 
     success: function(data){  
      $(data).each(function(){ 
       alert(this.id) 
      }); 

     }, 
     error:function(x, e){ 
      if (x.status === 0){ 
       alert("You are offline."); 
      } 
      else if(x.status === 404){ 
       alert("404 file not found error"); 
      } 
      else if(x.status === 500){ 
       alert("500 internal server error"); 
      } 
      else if(e === 'parsererror'){ 
       alert("200 but can't parse json response"); 
      } 
      else if(e === 'timeout'){ 
       alert("Request timed out."); 
      } 
      else { 
       alert("Unknown AJAX error"); 
      } 
     } 

    }); 

我得到一個"200 but can't parse json response"返回。有什麼我失蹤?

謝謝。

回答

2

您正在返回(無效)JSON,但您的JS正在尋找JSON-P。

一個JSON-P資源將是:

Content-Type: application/javascript 

value_of_callback_query_string_value([{"id": "123"}]); 

與之相對的JSON響應:

Content-Type: application/json 

[{"id": "123"}] 

注意,在JSON,串與引號分隔。您應該使用JSON Lint來測試您的輸出,並使用一個庫(有些在JSON homepage的末尾附近列出),而不是試圖手工製作JSON。

0

看起來像你應該使用「json」而不是「jsonp」。

+0

它將是跨域的。只是改變它得到了同樣的錯誤 – Barry