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

Laravel 8中Ajax实现可搜索下拉选择框数据不加载问题求助

问题修复方案

错误点及对应修复方法

    1. 请求方法与路由不匹配

你的AJAX请求使用POST方法,但路由定义的是GET类型,请求会直接触发405方法不允许错误
修复:修改路由代码为POST类型:

Route::post('/productlist',[AppController::class, 'productlist']);
    1. 控制器返回格式不符合要求

你的AJAX配置了dataType:"json"要求返回JSON格式,但当前控制器返回的是视图页面,无法被JS解析
修复:修改控制器代码直接返回JSON数据:

public function productlist() 
{
    $data= DB::table('Products')  
        ->orderBy('id', 'DESC')
        ->get();  
    return response()->json($data);
}
    1. 缺少CSRF令牌Meta标签

AJAX代码需要读取meta[name="csrf-token"]的内容作为请求凭证,你提供的Blade代码中没有定义这个标签,会导致请求被Laravel的CSRF中间件拦截,返回419状态码错误
修复:在Blade文件的<head>标签内添加以下代码:

<meta name="csrf-token" content="{{ csrf_token() }}">
    1. 缺少对应的下拉框DOM元素

你提供的Blade代码中没有定义ID为category_item的select元素,JS无法找到对应节点渲染选项
修复:在form表单内添加下拉框代码:

<select id="category_item" class="form-control selectpicker" data-live-search="true">
    <option value="">请选择产品</option>
</select>
    1. 数据库字段名校验

确认你的Products表中产品名称字段确实是Product_name(注意大小写),如果字段名是小写的product_name,需要把JS代码里的data[count].Product_name改成data[count].product_name


调试辅助

如果修改后仍有问题,可以按F12打开浏览器开发者工具,查看控制台报错和网络请求的返回内容,可快速定位剩余问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:15:02