【问题标题】:Unable to receive JSON from JQuery ajax call无法从 JQuery ajax 调用接收 JSON
【发布时间】:2010-09-09 22:04:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: jquery ajax json


    【解决方案1】:

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

    1) 您指定的“数据类型”选项应该是“数据类型”(我相信区分大小写)

    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) 三重检查您的帖子 url 的输出并通过 JSON 验证器运行输出,以绝对确定它是有效的并且可以解析为 JSON 对象。 http://www.jsonlint.com

    希望这能有所帮助!

    【讨论】:

    • 非常感谢您花时间回答。这是我作为数据类型的 dataType 选项
    • 请注意,将dataType设置为“json”会自动将contentType设置为“application/json”。
    • @BHR +1 根据文档正确。但是,可能需要注意:我正在使用 jquery 1.6.4 atm 并发现我需要明确设置 contentType: "application/json; charset=utf-8"
    【解决方案2】:

    为什么是myResult 而不是request

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

    【讨论】:

    • 我很确定在我的完整代码中我正在将请求操纵到 myResult 中......但我改变了它以便更清楚......问题是 dataType 被拼写为'datatype '。感谢您的评论
    【解决方案3】:

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

    数据:{索引:ddl.selectedIndex},

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

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

    祝你好运 一个

    【讨论】:

    • -1,将字符串作为属性名称是完全有效的语法。在某些情况下,这是必须的,例如,当您有一个在 javascript 中不是有效标识符名称的属性名称时,引用它将允许您给它一个值。一个常见的例子是"class",它必须被引用,因为它是一个保留字。在 JSON 语法中,甚至要求将所有属性名称用双引号括起来。
    猜你喜欢
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2013-07-28
    相关资源
    最近更新 更多