2012-08-24 44 views
0

當有人點擊一個按鈕時,我希望它播放指定的視頻(在移動設備上)。什麼情況是,當有人點擊該按鈕時,我做客戶端上的這樣一個AJAX調用:jQuery AJAX調用後的重定向請求

$(".play").click(function(){ 
    var camerahash = $(this).data('hash'); 
    var cameratype = $(this).data('type'); 
    function doAjax(){ 
     $.ajax({ 
      url: 'myfile.php', 
      success: function(data) { 
       if (data == 'Initializing...') 
       { 
        setTimeout(doAjax, 2000); 
       } 
       else 
       { 
        $('#quote p').html(data); 

       } 

      } 
     }); 

    } 
    doAjax(); 
}); 

這這個div消息打印到用戶:

<div id="quote"><p> </p></div> 

服務器代碼(myfile.php):

 $r = new HttpRequest('http://localhost...', HttpRequest::METH_GET); 
     $r->send(); 
     $code = $r->getResponseCode(); 

     switch($code) { 
      case 200: 
       echo "Starting Stream... "; 
       echo '<a href="http://blah.m3u8">Play Stream</a>'; 
       echo '<br>'; 
       break; 
      case 450: 
       echo "Oops! Camera not found..."; 
       echo '<br>'; 
       break; 
      case 550: 
       echo "Oops! An error occurred..."; 
       echo '<br>'; 
       break; 
      case 250: 
       echo "Initializing..."; 
       break; 
      default: 
       echo "Error 600"; 
       echo '<br>'; 
       break; 
     } 

這工作,但按你的按鈕後:Starting stream... Play Stream其中,播放流是你必須點擊播放該視頻的鏈接。我想要的只是點擊按鈕後立即啓動視頻(並在服務器上驗證了正確的狀態代碼)。

我試過按這個post這是非常相似的。

但我不能讓json工作,所以我不能把url與重定向,如:window.location.href = data.redirect;哪裏在服務器端redirect將有網址。任何想法我能做些什麼呢?

我應該注意到,這是Joomla,所以服務器代碼不是myfile.php,但實際上是一個組件url,但我相信這個問題是無關緊要的。有任何想法嗎?

+0

Joomla版本/什麼成分? – SomeKittens

+0

2.5自定義組件 – Tom

+0

標題根本沒有意義。 – zerkms

回答

0

其實這最終是相當簡單。這個老post沒有指向正確的方向。

我所擁有的一切,我需要在客戶端,所以我只是用window.location重定向:

window.location = 'http://myurl.com/playlist.m3u8'; 

因此,這完美的作品:

$(".play").click(function(){ 
var camerahash = $(this).data('hash'); 
var cameratype = $(this).data('type'); 
function doAjax(){ 
    $.ajax({ 
     url: 'myfile.php', 
     success: function(data) { 
      if (data == 'Initializing...') 
      { 
       setTimeout(doAjax, 2000); 
      } 
      else 
      { 
       $('#quote p').html(data); 
       window.location = 'http://myurl.com/playlist.m3u8'; 

      } 

     } 
    }); 

} 
doAjax(); 
});