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

Laravel 8中Ajax请求无数据返回问题求助

问题分析与解决

你的代码存在两个关键问题,导致控制台没有输出预期内容:

  1. 数据类型不匹配
    你在Ajax请求里指定了dataType: 'json',这要求服务器必须返回合法的JSON格式数据,但控制器的get_foo方法返回的是纯字符串"this is not a test",并非JSON格式。jQuery解析非JSON数据时会触发错误回调,但你没有定义error函数,所以看起来没有任何输出。

    解决方法二选一:

    • 修改控制器,返回JSON格式数据:
      public function get_foo() {
          return response()->json("this is not a test");
      }
      
    • 移除Ajax请求中的dataType: 'json',让jQuery自动识别返回数据类型:
      $.ajax({
        headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        method : 'GET', 
        url : "get_foo",
        success : function(result){
          console.log("The result is --> %o", result);
        }
      });
      
  2. 缺失CSRF元标签(非核心问题,但需注意)
    你的Blade模板<head>中没有添加CSRF验证的元标签,虽然GET请求默认不需要CSRF验证,但如果后续改为POST请求,必须添加该标签才能通过验证:

    <meta name="csrf-token" content="{{ csrf_token() }}">
    

另外,建议在Ajax请求中添加error回调,方便快速排查问题:

error: function(xhr, status, error) {
  console.log("请求错误信息:", error);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:48:23