AJAX调用的Laravel路由不能正常工作


Laravel Route called by AJAX not working correctly

首先我想告诉你,我的项目是如何基本结构的。我有视图和控制器。然后在public>JS文件夹中放置了jQuery以及一个名为sweealert的插件。

现在我这样做了,所以我向控制器发送了一个ajax请求,然后返回数据(关于类别)。

现在我有一个问题。我有两个不同的视图,一个有路线/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>

确保你的脚本被正确加载,无论你在哪个url。

参见:https://laravel.com/docs/5.3/helpers#method-asset

需要在脚本中写入url,如'/js/jquery-3.1.1.min.js'