0

ローカルホストからJSONPを読み込もうとしています。提供されている場合、コールバック付きのJSONを返すPHPWebアプリがあります。返されるJSONは100%有効です(JSONバリデーターでチェックされます)。URLは次のようになります。

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バリデーターを使用して検証しました)。データが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

誰かがこれを修正する方法を知っていますか?

4

1 に答える 1

0

エラーが見つかりました。基本レイアウトにはまだ応答にHTMLコードが含まれていました。ZEND(2番目の回答)でJSONP呼び出しを処理する手順に従いましたが、完全に機能するようになりました。とにかく助けてくれてありがとう!

于 2013-01-23T12:00:56.383 に答える