AJAX 调用的 Laravel 路由无法正常工作
Posted
技术标签:
【中文标题】AJAX 调用的 Laravel 路由无法正常工作【英文标题】:Laravel Route called by AJAX not working correctly 【发布时间】:2017-03-23 08:50:12 【问题描述】:首先我想告诉你,我的项目的基本结构是怎样的。 我有我的观点和我的控制器。然后在 public>JS 文件夹中,我放置了 jQuery 以及一个名为 sweealert 的插件。
现在我做了this,所以我向控制器发送了一个ajax请求,然后控制器返回数据(关于类别)。
现在我有一个问题。我有 2 个不同的视图,一个有 /addProduct
的路线,在那里,一切正常。另一条路线用于编辑产品,因此这些路线例如 /editProduct/1
用于 id 为 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文件),如何解决?
【问题讨论】:
@RoryMcCrossan https 是正确的,我模拟了 SSL ......但它应该是 localhost/js/jquery .....js 而不是 localhost/editProduct/js/jquery .... js 【参考方案1】:需要将 url 写入脚本,例如 '/js/jquery-3.1.1.min.js'
【讨论】:
omg,这行得通...之前(包括脚本时)我有./js/jquery-3.1.1.min.js
,所以相对部分...很简单^^谢谢..【参考方案2】:
您加载脚本有误。 使用
<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 以获得更棒的辅助功能。
【讨论】:
以上是关于AJAX 调用的 Laravel 路由无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
jquery .ajax函数与Laravel-4无法正常工作
即使包含 CSRF 令牌,Laravel ajax 帖子也无法正常工作