2011-06-25 94 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