首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JS Ajax呼叫时如何重定向到Laravel路由

JS Ajax呼叫时如何重定向到Laravel路由
EN

Stack Overflow用户
提问于 2018-10-11 11:09:56
回答 1查看 299关注 0票数 0

我正在尝试创建一个重定向到laravel控制器中的路由,其中对该控制器的调用来自js文件中的Ajax调用。

示例:我加载了一个视图localhost:8000/viewone,在这个视图中我运行了一个js代码,它对Laravel路由:routeone执行Ajax调用。在链接到routeone的控制器函数中,代码执行一些数据处理,然后需要加载另一个视图:viewTwo

问题是,viewTwo加载没有发生,我得到的只是onsuccess调用的onsuccess函数中返回语句中的视图HTML代码。

我尝试了什么:

通过创建一个新的路由viewTwo创建一个与routeTwo链接的控制器,在我的routeone控制器中,我使用会话数据重定向到这个路由。

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

routeTwo控制器中,我获取会话数据并返回viewTwo

代码语言:javascript
运行
复制
$data = \Session::get('data');
return view('viewTwo',['data'=>$data]);

还是不起作用。所发生的情况是,viewTwo加载是作为XHR请求进行的,而我得到的HTML页面将作为XHR响应数据加载到主浏览器视图(如第一个视图)中。

问题:当Js函数调用时,如何强制重定向到/load视图。

EN

回答 1

Stack Overflow用户

发布于 2018-10-11 11:28:01

通过从ajax加载或呈现html,在第一个视图页面中这样做

代码语言:javascript
运行
复制
<div class="newView"></div>

通过ajax成功函数添加以下一行

代码语言:javascript
运行
复制
$('.newView').html(data.html);

在控制器中

代码语言:javascript
运行
复制
$view = view("viewnamewhatuhave",compact('data'))->render();

从正面看

代码语言:javascript
运行
复制
$view =  View::make('viewnamewhatuhaveset',[$data])->render();

return response()->json(['html' => $view]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52758588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档