2011-02-07 14 views
2

Webアプリケーションに必要なvimeoビデオからデータを取得するために、vimeoにajaxリクエストを作成しようとしています。

私はIEなどのブラウザでvimeoDataUrlを入力すると、予想通り、私はJSONの結果を取得していますが、できるだけ早く私は放火犯に依頼で探していると私は200と空の応答を取得しています
var vimeoDataUrl = "http://vimeo.com/api/oembed.json?url=http://vimeo.com/" + vimeoId; //+ "&callback=?"; 
console.log(vimeoDataUrl); //http://vimeo.com/api/oembed.json?url=http://vimeo.com/16630327 

$.getJSON(vimeoDataUrl, function (json, textStatus) { 
    if (json != null) { 
     var title = json.title; 
     var videoWidth = json.width; 
     var videoHeight = json.height; 
     if (title != null && videoWidth != null && videoHeight != null) { 

      var vimeoImageUrl = json.thumbnail_url; 
      $('#largeImageUrl').val(vimeoImageUrl); 
      $('#videoName').val(title); 
      $('#videoWidth').val(videoWidth); 
      $('#videoHeight').val(videoHeight); 
      hasValidVideoUrl = true; 
     } 
    } 
    else 
    { 
     //an message is shown 
    } 
    $('#videoName, #placeVideo').removeAttr('disabled'); 
    $('img#loading').remove(); 
}); 

-状態。誰かがここで私を助けることができますか?問題がvimeoにあるのですか、何か問題がありますか?

答えて

4

jsonの要求を別のドメイン(JS docswikipedia)にすることはできません。
それはURLでそれを見つけた場合はjQueryのJSONPを使用しますので、あなたが...それだけで正常に動作&callback=?、あなたのURLの最後の部分をアンコメントしている場合JSONP

を使用する必要があります。 URLは、として文字列 "コールバック=?"(または類似を、含まれている場合

ので、JSONPgetJsondocs

から

var vimeoDataUrl = "http://vimeo.com/api/oembed.json?url=http://vimeo.com/" + vimeoId + "&callback=?"; 

を使用定義済みサーバー側APIによって10)、要求 は代わりにJSONPとして処理されます。詳細については、 $ .ajax()のjsonpデータ型についての の説明を参照してください。

追加メモ:

  • により、ブラウザのセキュリティ制限には、最も「アヤックス」の要求は、同一生成元ポリシーに 対象となっています。 リクエストは、別のドメインの データ、 サブドメイン、またはプロトコルを正常に取得できません。
  • スクリプトおよびJSONP要求には、同じオリジンポリシー の制限が適用されません。

デモ良い答えのためのhttp://www.jsfiddle.net/gaby/gQaXD/

+0

おかげで。さらに明日調査してお知らせします。 – Rob

+0

また、私のajaxSetupを少し修正しなければなりませんでした。 jQuery 1.5にアップグレードするときに変更を加えました。 jsonpcallbackをリセットしてパラメータを追加すると、問題は解決されました。 – Rob

+0

@Rob、すべて聞いていいです.. –