jQuery AJAX从localhost加载JSONP但不返回数据

时间:2013-01-23 11:47:46

标签: php json jquery jsonp

我正在尝试从我的localhost加载一些JSONP。我有一个PHP webapp,如果提供了回调,则返回带有回调的JSON。返回的JSON是100%有效(使用JSON Validator检查)。网址如下所示:

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

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

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