无法从JQuery ajax调用接收JSON

时间:2008-09-17 03:00:04

标签: jquery ajax json

我已经确定来自服务器的JSON是有效的(手动进行ajax调用),但我真的很想使用JQuery。我还确定使用firebug发送到服务器的“post”URL是正确的。但是,仍然会触发错误回调(解析错误)。我也尝试过数据类型:text。

我还应该包括其他选项吗?

$(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

3 个答案:

答案 0 :(得分:19)

以下是我会尝试的一些建议:

1)您指定的'datatype'选项应为'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

希望其中一些有帮助!

答案 1 :(得分:1)

为什么myResult代替request

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

答案 2 :(得分:0)

数据参数错误。这是一个有效的例子:

data:{index:ddl.selectedIndex},

这构造了一个具有名为index的属性的对象,其值为ddl.selectedIndex。

您需要从数据参数行中删除引号

祝你好运 甲