0

私のウェブサイトでこのコードを実行してセットの写真を取得していますが、常にエラーが発生します。コンソール ログに「parsererror」が表示されます。私は何を間違っていますか?

middle.php

<?php die(file_get_contents($_REQUEST['url'])); ?>

script.js

//Flickr
var url = encodeURIComponent('http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=1408bff5f72a4b84b924d13e8562b6a2&photoset_id=77649470@N03&photoset_id=72157629903184261&format=json');
$.ajax({
    url: "middle.php?url="+url,
    dataType: "json",
    success: function(){
        console.log("yes");
    },
    error: function(jqXHR, textstatus, errorThrown){
        console.log("nooo");
        console.log( textstatus );
    }
});
4

1 に答える 1

3

クロスドメイン セキュリティの問題が原因で問題が発生している場合は、「仲介者」ページを作成することをお勧めします。この例では PHP を使用します。middle.php異なるドメインの URL を受け入れ、テキスト/コードをフェッチして返す を作成します。私のJSはこれを同じサイトのリクエストと見なし、すべてがうまくいきます.

middle.php

<?php die(file_get_contents($_REQUEST['url'])); ?>

PHP を使用していない場合は、同じ戦略を独自の環境に適用できます。

次に、ajax 呼び出しは次のようになります。

var url = encodeURIComponent('http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=1408bff5f72a4b84b924d13e8562b6a2&photoset_id=77649470@N03&photoset_id=72157629903184261&format=json');

$.ajax({
    url: "middle.php?url="+url,
    dataType: "json",
    success: function(){
        console.log("yes");
    },
    error: function(jqXHR, textstatus, errorThrown){
        console.log("nooo");
        console.log( textstatus );
    }
});

ただし、私はgetJSON()JSONデータのフェッチに使用するのが好きです。ajax()

$.getJSON("middle.php?url="+url, function(obj){
    if (obj.photoset){
        console.log("Success");
    } else {
        console.log("Error");
    }
});
于 2012-04-27T12:58:36.503 に答える