0

私はうまく機能するローカルスクリプトを持っています:

$.getJSON("jsonfile.js",function(item) {    
  $.each(item.terra_nova_feed, function(i,item) {
    // functions and varibles//
  });
});

これはローカルでうまく機能します。JSON ファイルが別のドメインに移動すると..何もありません。getScript を使用して JSON ファイルを取得する必要があることはわかっています。ただし、そのデータを既存のスクリプトに取り込むにはどうすればよいですか?

4

3 に答える 3

2

$.ajax()関数を試して、crossDomain:trueパラメータを使用してください。基本的に、コールバックでデータをラップする JSONP (パディングされた JSON) を使用します。

$.ajax({
    url: "http://www.otherdomain.com/jsonfile.js",
    crossDomain:true,
    type:'get',
    dataType:'json',
    success: function(data) {    
        $.each(data.terra_nova_feed, function(i,data) {
            // functions and varibles//
        });
    }
});
于 2011-07-21T21:05:18.163 に答える
1

簡単な答えは、あなたには本当にできないということです。そうは言っても、他のドメインが返すものを制御できる場合は、JSON-P と呼ばれるものを使用できます。JSON-P では、基本的にスクリプト ファイルをクロス ドメインで呼び出します。スクリプトは、ページのメソッドを呼び出すような方法で返される必要があります。jQuery は呼び出しページで配管を処理しますが、スクリプトを含むサーバーが正しく出力していることを確認する必要があります。

于 2011-07-21T21:09:55.373 に答える
0

問題は、 $.getJson() は通常 jsonp では機能しないことです (つまり、それを渡すサーバーからの明示的なサポートなどの特別な場合を除き、クロスドメインでは機能しません) が、あなたの場合は $ を使用する必要があると思います.ajax() を開き、crossDomain オプションを true に設定します。

于 2011-07-21T21:04:48.120 に答える