如何修复Laravel项目中'$.ajax is not defined'错误?
解决jQuery $.ajax is not defined错误
问题根源
你同时引入了完整版jQuery和Slim版jQuery,Slim版移除了Ajax、动画效果等核心模块,且后引入的Slim版会覆盖之前的完整jQuery,直接导致$.ajax方法丢失。另外你的Bootstrap脚本标签存在语法错误,也可能干扰脚本加载逻辑。
修复步骤
移除Slim版jQuery
删掉这一行冗余的Slim版引入:<script src="https://code.jquery.com/jquery-3.6.3.slim.min.js" integrity="sha384-xxxxxxxxxxxxxxxx" crossorigin="anonymous" type="text/javascript"></script>Bootstrap 4.x依赖完整jQuery,Slim版本身不支持Bootstrap部分功能,完全没必要保留。
修正Bootstrap脚本标签的语法错误
把错误的标签:<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" type="text/js"></sc>改为正确格式:
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>HTML5中
type属性可省略,同时要确保标签闭合正确。确认脚本加载顺序
保持脚本加载顺序为:完整jQuery → Popper.js → Bootstrap → 自定义脚本(results.js),确保$在你的自定义脚本执行前已完成初始化。
修复后的layout.blade.php脚本段
<script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha384-xxxxxxxxxxxxxxxx" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script> <script type="text/javascript" src="{{ asset('results.js') }}"></script>
额外验证步骤
- 打开浏览器开发者工具(F12)→ Console面板,输入
$或jQuery,确认返回的是完整jQuery对象而非Slim版。 - 检查Network面板,确认所有脚本都成功加载(无404或加载失败状态)。
内容的提问来源于stack exchange,提问作者Sad3ng
相关产品推荐
相关产品推荐

