簡體   English   中英

從JS Ajax發出呼叫時如何重定向到Laravel路由

[英]How to redirect to Laravel route when call came from JS Ajax

我試圖在laravel控制器中創建到路由的重定向,此控制器的調用來自js文件中的Ajax調用。

示例:我加載了一個視圖localhost:8000/viewone ,在此視圖中,我運行了一個對Laravel route: routeone進行Ajax調用的js代碼。 在鏈接到routeone的控制器功能中,代碼執行一些數據處理,然后需要加載另一個視圖: viewTwo

問題是不會發生viewTwo加載,而我得到的只是Ajax調用的onsuccess函數中return語句中的view HTML代碼。

我試過了

通過創建新的路由viewTwo來創建一個routeTwo routeone控制器,在我的routeone控制器中,我使用會話數據重定向到該路由。

return redirect()->route('routeTwo')->with(['data'=>$data])

routeTwo控制器中,我獲取會話數據並返回viewTwo

$data = \Session::get('data');
return view('viewTwo',['data'=>$data]);

它仍然不起作用。 發生的是, viewTwo加載是作為XHR請求發生的,我得到的HTML頁面將作為XHR響應數據加載到主瀏覽器視圖(如第一個視圖)中。

問題:當來自Js AJAX函數的調用時,如何強制重定向到/加載視圖。

通過加載或從ajax渲染html在第一個視圖頁面中這樣做

<div class="newView"></div>

通過ajax成功函數添加此行

$('.newView').html(data.html);

在控制器中

$view = view("viewnamewhatuhave",compact('data'))->render();

按外觀

$view =  View::make('viewnamewhatuhaveset',[$data])->render();

return response()->json(['html' => $view]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM