0

私はホストを備えた Rails アプリケーションを持っておりhttp://myhost.dev、vk.com (ロシアの facebook) の API を使用して音楽を検索するため、検索メソッドを提供しますaudio.search。これは、コントローラーの検索アクションへのリモートリンクで呼び出された私の search.js.erb です。

VK.api('audio.search',{q: "<%= j params[:query] %>", auto_complete: "1", sort: "2", count: "200"},function(data){
  if(data.response) {
    $(function() {
      var audio = $('audio');
      // Setup the audio.js player
      var a = audiojs.create(audio);
      });
      // Load in the first track
      var audio = a[0];
          first = $('ol a').attr('data-src');

      console.log(first);
      $(".song-title").text($('ol a').first().text());
      $('ol li').first().addClass('playing');

      // load resource to player
      audio.load(first);
      });
    });

  }

  else {
    /* handle error */
  }
});

私のapplication.js:

  // initiate vk application
  VK.init({
    apiId: '3650724'
  });

それはすべて大丈夫です、それはすべて機能していますが、それは別のルートではありません! たとえば、ルートhttp://myhost.dev/fooには別のオーディオ タグがあり、次のようなコードがあります。

:javascript
  var artist = '#{ @artist.name }';
  // Setup the player to autoplay the next track

  // Setup the player to autoplay the next track

  // Load in the first track
  var track_name = $('ol a').first().attr('data-src');
  VK.api('audio.search',{q: artist + " - " + track_name, auto_complete: "1", sort: "0", count: "1"},function(data){
    if(data.response) {
      $(function() { 
        alert("lol");
        var audio = $('audio');
        var a = audiojs.create(audio);
        var first_track = data.response[1];
        $(".song-title").text(first_track.title);
        $('ol li').first().addClass('playing');

        console.log(first_track.url);
        audio.load(first_track.url);
      });
    }
    else {
      alert("fail!");
    }
  });

有効なjson応答を返しますが、リソースURLをプレーヤーにロードすると、

XMLHttpRequest cannot load http://cs4967.vk.me/u5366455/audios/some.mp3. Origin http://myhost.dev is not allowed by Access-Control-Allow-Origin.
4

1 に答える 1