2017-10-11 79 views
0

我想使用ajax調用重定向另一個頁面。我用下面的代碼,但它不重定向通過rails中的ajax調用重定向頁面

def show_item_details 
    @itm_id=params[:Id] 
    redirect_to prd_item_path(@itm_id) 
end 

Ajax代碼

$.ajax({ 
     type:"GET", 
     url: url, 
     dataType:"json", 
     data: {PrdId: parseInt(prdId)}, 
     success:function(result){ 
      setItemDetails(result) 
     } 
    });  
+1

ajax請求默認不遵循重定向標頭。畢竟,ajax的重點是避免回發,重定向,頁面刷新等。如果你想做這樣的重定向,你需要使用常規的回發。實際上沒有理由爲此使用ajax,因爲重定向您會失去ajax的好處。 – ADyson

回答

0

有很多的方式。

一個選項是將新位置從控制器傳遞到前端並使用javascript重定向。

success:function(result){ 
    window.location.href = result; 
} 

其他選項將避免重定向但呈現新頁面並顯示html。

success:function(result){ 
    $('body').html(result); 
} 

這在javascript上很容易,但所有的工作都必須在控制器中完成。

希望這會有所幫助!