0

jQuery を使用して、次の URL から返された情報を取得しようとしています。

Var URL = http://getdeeplink.linksynergy.com/createcustomlink.shtml?token=2e9830b7ed11c5dee96dd4b4a9e83da216c9d583ae1e617bcafdd6eb004e3c86&mid=13508&murl=http://itunes.apple.com/us/music-video/if-you-think-this-song-is/id413824018?uo=4

以下に概説する 2 つのアプローチを試しましたが、どちらの場合も、プログラムは何も起こらなかったようにコード ブロックを通り過ぎて実行されます。誰が私が間違っているのか教えてもらえますか?

  $.ajax({ 
             type: "GET",
             dataType: "jsonp",
             url: URL,
             success: function(data){       
                alert(data);
             }
         });

2 番目のアプローチ:

     $.get(URL, function(data) {
       alert('Load was performed.');
       alert(data);
      });
4

2 に答える 2

4

まず、URL を要求しているサーバーのドメインがページのドメインと同じでない場合、same-origin-limitations が発生している可能性があります。

第二に、それが同じオリジンではなく、JSONP を使用しようとしている場合 (そうである可能性があります)、サーバーは特に JSONP をサポートし、結果を JSONP 形式でパッケージ化する必要があります。これは、結果を実行可能ファイルとしてフォーマットすることを意味します。スクリプトでありcallback=xxxx、URL のクエリ引数を尊重することも意味します。

3 番目に、あなたが質問に入れたこの JavaScript は、有効な JavaScript にするために URL を引用符で囲んでいないように見え、varすべて小文字になっています。

var URL = "http://getdeeplink.linksynergy.com/createcustomlink.shtml?token=2e9830b7ed11c5dee96dd4b4a9e83da216c9d583ae1e617bcafdd6eb004e3c86&mid=13508&murl=http://itunes.apple.com/us/music-video/if-you-think-this-song-is/id413824018?uo=4";

さらにデバッグするには、ajax 呼び出しのエラー ハンドラーをアタッチし、詳細情報が得られるかどうかを確認することをお勧めします。同じオリジンの問題が原因で何かがブロックされている場合、またはスクリプトの実行を停止している他のスクリプト エラーがある場合は、ブラウザのエラー コンソールまたはデバッグ コンソールにも役立つメッセージが表示されることがあります。

于 2012-05-04T04:38:30.333 に答える
0

同じオリジンの制限があるため、そのような ajax 呼び出しを実行することはできません。あなたがする必要があるのは、あなたのJavaスクリプトが「getdeeplink.php」でajax呼び出しを実行するサーバーサイドページをセットアップすることです(私はあなたがPHPでそれをしていると仮定しています)

あなたのJavaScript

$.get('getdeeplink.php',data,function(){.....});

その getdeeplink.php で、REST 呼び出しを実行し、応答を ajax ハンドラーにエコー バックします。

getdeeplink.php

$rest_response = file_get_contents('http://getdeeplink.linksynergy.com/createcustomlink.shtml?token=2e9830b7ed11c5dee96dd4b4a9e83da216c9d583ae1e617bcafdd6eb004e3c86&mid=13508&murl=http://itunes.apple.com/us/music-video/if-you-think-this-song-is/id413824018?uo=4');
echo json_encode($rest_response); //send the result to the ajax handler
于 2012-05-04T05:17:15.927 に答える