首先我想告诉你,我的项目的基本结构是怎样的。 我有我的观点和我的控制者。然后在 public>JS 文件夹中我放置了 jQuery 以及一个名为 sweealert 的插件。
现在我做到了this ,所以我向 Controller 发送一个 ajax 请求,然后 Controller 返回数据(关于类别)。
现在我遇到了一个问题。我有 2 个不同的 View ,一个有路线 /addProduct
,在那里,一切正常。另一条路由用于编辑产品,因此这些路由例如用于 id 为 1 的产品的 /editProduct/1
。从这个角度来看,使用所描述的 ajax 是行不通的。
子类别都没有切换,jQuery 的其他功能也不起作用。控制台告诉我原因:
https://localhost/editProduct/js/jquery-3.1.1.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
https://localhost/editProduct/js/sweetalert.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
1:4 Uncaught ReferenceError: $ is not defined(…)
所以 jQuery 和 sweetAlert 插件在错误的文件夹中查找,因此 jQuery 不起作用,这就是为什么我的 AJAX 成功回调不再起作用......现在的问题是,为什么?像 addProduct
这样的路径可以工作,但是后面带有某些内容的路径(例如 editProduct/1
)不起作用?不,没有拼写错误或任何可能导致问题的东西,我尝试对产品的 id 进行硬编码以在代码中进行编辑,这样我就可以调用 /editProduct
并且有效,所以就是这样额外添加的 id。
这个问题从何而来(为什么会在错误的目录中搜索js文件)以及如何解决?
最佳答案
您加载的脚本错误。 使用
<script src="{{ asset('js/jquery-3.1.1.min.js') }}"></script>
始终确保您的脚本正确加载,无论您位于哪个网址。
另请参阅:https://laravel.com/docs/5.3/helpers#method-asset
和https://laravel.com/docs/5.3/helpers更多精彩的辅助函数。
关于php - AJAX 调用的 Laravel Route 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40508746/