2015-07-20 54 views
0

這裏的情況 - 我有一個樹莓派2(它連接到電視),我運行科迪播放電影。我想建立我自己的電影數據庫,所以我可以瀏覽連接到樹莓的extarnal硬盤上的所有電影。我發現我可以通過網絡上的另一臺計算機向服務器發送一個請求到一臺電影。例如,如果我進入我的機器上的Web瀏覽器以下網址:點擊一個鏈接發送請求到另一個網站,而不刷新頁面

http://192.168.0.102:8080/jsonrpc?request={"jsonrpc":"2.0","id":"1","method":"Player.Open","params":{"item":{"file":"/media/serverhdd/cloud/Movies/Ex Machina/Ex Machina.mkv"}}} 

電影前Machina(科迪已運行)將啓動。我有以下代碼:

<a class = "play_movie" href = "http://192.168.0.102:8080/jsonrpc?request={"jsonrpc":"2.0","id":"1","method":"Player.Open","params":{"item":{"file":"/media/serverhdd/cloud/Movies/Ex Machina/Ex Machina.mkv"}}}">Pleay movie</a> 
     <script type="text/javascript"> 
      $('.play_movie').click(function(){ 
       var movie_url = $(this).attr('href'); 
       $.ajax({ 
        url: movie_url, 
        success: function(data) { 
         alert('done'); 
        } 
       }); 
      }); 
     </script> 

當我點擊鏈接,科迪開始播放電影,但我要這個URL,並得到這個消息:

{「ID」:「1 「,」jsonrpc「:」2.0「,」result「:」OK「}

我想要的是留在當前頁面而不是上面的URL。我在這裏和其他地方查了一下,似乎我應該可以用AJAX做到這一點,但是通過上面的代碼,我將轉到URL,而不是停留在當前頁面上。

請問您能告訴我該怎麼做?

這將不勝感激!

問候, 伊萬

+1

然後有你'。點擊()'函數返回false,以防止點擊從做它通常會... –

+0

它不工作 - 我現在住在當前頁面,但電影沒有開始... – Ivan

+0

好吧,你只是假設請求的工作。僅僅因爲在JS中引發成功是沒有意義的。這僅僅意味着http請求返回了200。你需要看看返回的json,例如'{「結果」:「不行」}或其他。 –

回答

0

首先解決建議:你只需要使用事件的preventDefault jQuery函數。在這種情況下默認輸入鏈接。

替代解決方案:好的,這不是我提出的第一個解決方案。但要記住正確的代碼不起作用,你可以試試這個代碼來修復它(或者破解它)。

$('.play_movie').each(function(){ 
    var href = $(this).attr('href'); 
    $(this).attr('hhref', href); 
    $(this).attr('href', 'javascript:void(0)'); 
}); 

$('.play_movie').click(function(event){ 
    event.preventDefault(); 
    var movie_url = $(this).attr('hhref'); 
    $.ajax({ 
     url: movie_url, 
     success: function(data) { 
      alert('done'); 
     } 
    }); 
}); 
+0

感謝您的反饋。我已經alraedy在發佈這個問題之前嘗試過這個,但這不起作用.....不幸的是...... – Ivan

0

我想我想通了......我已經改變了設計有點...而不是使用一個環節,我認爲這將是更好地使用按鈕和硬編碼的變量 - 的IP地址和電影目的地。當然,我將能夠太從數據庫中獲取他們很容易,但是這僅僅是爲了測試目的:

<button>Play movie</button> 

<script> 

    var KodiAddress = 'http://192.168.0.102:8080'; 

    $('button').click(function() { 
     var kodioutput = $(this).attr('href'); 
     var URL = '/media/serverhdd/cloud/Movies/Ex Machina/Ex Machina.mkv'; // Grab Input Value 
     $.ajax({ 
      type: 'GET', 
      url: KodiAddress + '/jsonrpc', 
      dataType: 'jsonp', 
      jsonpCallback: 'jsonCallback', 
      type: 'GET', 
      async: false, 
      data: 'request=' + encodeURIComponent('{"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"' + URL + '"}},"id":"1"}') 
     }) 
     .fail(function(jqXHR, textStatus) { 
      if (jqXHR.status == 200) { 
       alert('done'); 
      } else { 
       alert('fail'); 
      } 
     }); 
    }); 
</script> 

謝謝大家尋找到我的問題!

問候, 伊萬

相關問題