jQuery Ajax vs Classic ASP返回数据

时间:2011-06-25 23:06:01

标签: jquery asp-classic

帮助将不胜感激。

在我的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 个答案:

答案 0 :(得分: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中,字符串以 double 引号分隔。您应该使用JSON Lint来测试输出,并使用库(有些列在JSON homepage末尾附近)而不是尝试手工制作JSON。

答案 1 :(得分:0)

好像你应该使用“json”而不是“jsonp”。