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

Laravel中Ajax调用无法请求服务器,求问题排查方案

解决jquery.atwho远程请求无响应的问题

看你提供的代码,我发现几个关键问题导致没有XHR请求发起,咱们一步步来排查修复:

1. 绑定元素错误(最核心问题)

你把atwho绑定到了$('#body'),但jquery.atwho需要绑定到可输入的元素(比如<textarea>、<input>或者设置了contenteditable="true"的元素),就像你本地示例里的#inputor一样。body不是可输入元素,插件根本不会触发输入监听逻辑,自然不会发起请求。

修复方法:把绑定目标改成你的实际输入框,比如如果你的输入框id确实是body,先确保它是可输入类型:

<!-- 确保是可输入元素,比如textarea -->
<textarea id="body"></textarea>

2. CSRF令牌的语法错误

你的ajax请求里_token: {{csrf_token()}}会触发JS语法错误——blade输出的令牌如果没有引号包裹,特殊字符会破坏脚本结构。而且Laravel的GET请求默认不需要校验CSRF令牌,你可以直接去掉这个参数,或者正确包裹引号:

// 方案1:去掉_token参数(GET请求无需校验CSRF)
data: { name: query },
// 方案2:正确添加引号包裹令牌
data: { name: query, _token: "{{csrf_token()}}" },

另外你添加的X-CSRF-TOKEN请求头对GET请求来说也是多余的,完全可以删掉这部分简化代码。

3. 路由与控制器的潜在问题

  • 确认Api\UserController的命名空间正确:比如控制器文件在app/Http/Controllers/Api/UserController.php,路由要对应正确的命名空间:
    // 推荐用路由分组统一管理API路由
    Route::prefix('api')->namespace('Api')->group(function () {
        Route::get('/users', 'UserController@index');
    });
    // 或者直接写完整命名空间
    Route::get('/api/users', 'App\Http\Controllers\Api\UserController@index');
    
  • 控制器查询可以优化得更规范,同时避免潜在的语法问题:
    public function index(Request $request) {
        $search = $request->input('name');
        // 用大括号包裹变量更清晰,避免字符串拼接错误
        return User::where('name', 'LIKE', "{$search}%")->take(5)->pluck('name');
    }
    

4. 依赖加载顺序确认

确保脚本加载顺序严格遵循:

  1. jQuery
  2. jquery.caret.js
  3. jquery.atwho.js
  4. 你的初始化脚本

和你本地能正常运行的示例顺序保持一致,顺序错乱会导致atwho找不到依赖而静默失败。

修复后的完整脚本示例

<script>
// 绑定到正确的可输入元素
$('#body').atwho({
    at: "@",
    delay: 500,
    callbacks: {
        remoteFilter: function (query, callback) {
            $.getJSON('/api/users', { name: query }, function (usernames) {
                console.log('获取到用户数据:', usernames);
                callback(usernames);
            }).fail(function() {
                console.log('请求失败,请检查路由和控制器');
            });
        }
    }
});
</script>

最后建议打开浏览器控制台(F12),先看Console标签有没有JS语法错误,再看Network标签有没有请求发起,这能帮你更快定位剩余问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:42:45