【问题标题】:jsonp issue - success function doesn't executejsonp 问题 - 成功函数不执行
【发布时间】:2012-04-28 10:44:42
【问题描述】:

我正在尝试在外部服务器上读取一个简单的 json。在 Firebug 网络面板中,我在 Response 和 JSON 选项卡中看到了正确的数据。但是成功函数没有执行。

回调显示为:fullurl?callback=jQuery1710837256851301949_1334637212326&_=1334638519052 而不是函数 - 不知道为什么 - 这可能是问题吗?

我的代码:

$.ajax({
    type: "GET",
    url: "external url",
    dataType: "jsonp",
    data : {},
    success: function (data) {
        console.log('success');
        alert("success");
        //   var myname = data.name;
        //   var myid = data.id;
        //     var fullcontent= "Name: " + myname + " ID: " + myid;
        // $("#jsondata").html(fullcontent);
    }
});

请帮忙 - 谢谢

【问题讨论】:

    标签: jquery jsonp


    【解决方案1】:

    你需要将回调函数指定为jsonpCallback而不是成功。

    $.ajax({
            type: "GET",
            url: "external url",
            dataType: "jsonp",
            data : {},
            jsonpCallback: function (data) {
                console.log('success');
                alert("success");
            }
    });
    

    编辑:

    为了使 JSONP 正常工作,服务器应直接将 JSON 数据写入流中。它不应该打印 JSON 字符串。更多详情请看question。

    我假设您正在服务器中正确写入流。是这样吗?

    【讨论】:

    • 感谢 Sudar - 但它仍然无法正常工作。还有其他建议吗?
    • jsonpCallback 函数中的数据对我来说是未定义的。如何解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 2017-04-21
    • 2011-01-23
    • 2012-08-26
    • 2014-06-14
    相关资源
    最近更新 更多