【问题标题】:jQuery AJAX loads JSONP from localhost but doesn't return datajQuery AJAX 从 localhost 加载 JSONP 但不返回数据
【发布时间】:2013-01-06 21:20:31
【问题描述】:

我正在尝试从本地主机加载一些 JSONP。我有一个 PHP webapp,如果提供了它,它会返回带有回调的 JSON。返回的 JSON 是 100% 有效的(使用 JSON 验证器检查)。网址如下所示:

http://localhost/backstage/public/data/acties?callback=?

现在,当我尝试使用 jQuery AJAX 加载这些数据时,它会提示我“错误”,暗示加载失败。

var url = "http://localhost/backstage/public/data/acties";

$("#debug").click(function() {
    console.log("getting data from " + url);
    $.ajax({
       type:'GET',
       url: url,
       dataType:'jsonp',
       success: function(data){
           alert('loaded');
       },
       error: function(data){
           alert('error');        
       }
    });
});

但是,当我转到网络标签时,我看到有人向:

http://localhost/backstage/public/data/acties?callback=jQuery19008035339566413313_1358941083680&_=1358941083681

并且该文件中的内容是有效的 JSON(我再次使用 JSON Validator 对其进行了验证)。数据似乎并没有出现在我的 JavaScript 数据变量中。

作为参考,这是我的 PHP (Zend 1.12) 代码:

public function actiesAction()
    {
        $data = new Application_Model_DbTable_Actie();
        $data = $data->fetchAll();
        $callback = htmlspecialchars($_GET["callback"]);
        $data = Zend_Json::encode($data);

        echo $callback.'('.$data.');';     
    }

这是你去的时候得到的JSONP

http://localhost/backstage/public/data/acties?callback=?

--> http://pastebin.com/tazcUQAW

请问有人知道怎么解决吗?

【问题讨论】:

标签: php json jquery jsonp


【解决方案1】:

我发现了错误:我的基本布局仍然在响应中包含 HTML 代码。我按照handle JSONP calls in ZEND(第二个答案)中的步骤操作,现在它可以完美运行了。无论如何感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2015-02-03
    • 2012-02-14
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2020-04-23
    • 2015-08-02
    相关资源
    最近更新 更多