You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.5+jQuery:Ajax请求后如何返回带数据的视图?

问题分析与解决方案

首先明确:通过Ajax请求直接返回视图并实现页面跳转是不可行的,因为Ajax的核心是异步获取数据,它只会接收服务器返回的内容,但不会自动触发浏览器的页面跳转行为——你的当前代码里,服务器确实把视图的HTML返回给了Ajax请求,但前端没有对这个返回结果做任何处理,所以页面才毫无反应。

先梳理下你现有代码的问题:

  • 前端JS的Ajax请求没有设置success或done回调,完全没处理服务器返回的视图内容;
  • 即便你补上回调拿到了视图HTML,也只能把它插入到当前页面的某个容器里,无法实现跳转到新页面的效果。

更简洁的解决方案(参考@charlietfl的建议)

既然你的需求是跳转到携带数据的新页面,完全没必要用Ajax,直接用<a>标签就能实现,既符合浏览器原生行为,又简单易维护:

前端代码替换:

把原来的按钮换成<a>标签,直接将参数拼在URL中:

<a href="{{ url('recommandationsSeances') }}?idSeance={{ $seanceId }}" id="button-recommandations">查看推荐场次</a>

(这里的$seanceId就是你原本通过$(e.relatedTarget).data('seance')获取的场次ID,直接在后端渲染页面时传入模板即可)

后端代码无需修改:

你的Laravel控制器代码可以保持原样,依然返回携带数据的视图:

return view('listeRecommandations', [
    'recommandationAutresActiviteMemeDateHeure' => $recommandationAutresActiviteMemeDateHeure,
    'recommandationsMemeActiviteMemeHeure' => $recommandationsMemeActiviteMemeHeure,
    'recommandationsMemeActiviteMemeDate' => $recommandationsMemeActiviteMemeDate
]);

若坚持要用Ajax实现(不推荐,无必要)

如果你有特殊需求(比如需要先做前端校验再跳转),可以在Ajax的成功回调里通过window.location.href手动触发页面跳转,同时带上参数:

$('#button-recommandations').on('click', function (e) {
    e.preventDefault();
    const seanceId = $(e.relatedTarget).data('seance');
    // 这里可以添加前端校验逻辑
    // 校验通过后直接跳转
    window.location.href = `recommandationsSeances?idSeance=${seanceId}`;
});

这种方式本质上还是触发浏览器跳转,和<a>标签效果一致,但多了不必要的异步请求步骤,所以更推荐直接用<a>标签的方案。


内容的提问来源于stack exchange,提问作者Royce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:46:15