当我使用 ajax 发布请求时,为啥在我的 live laravel 项目中显示 404 和 405
Posted
技术标签:
【中文标题】当我使用 ajax 发布请求时,为啥在我的 live laravel 项目中显示 404 和 405【英文标题】:why 404 and 405 shows on my live laravel project when I use ajax post request当我使用 ajax 发布请求时,为什么在我的 live laravel 项目中显示 404 和 405 【发布时间】:2022-01-12 05:47:59 【问题描述】:我在 laravel 中为我的本地客户端开发了简单的购物车系统,它在我的本地服务器上没有任何问题,但是当我在无限免费托管的实时服务器上发布它时,它有多个问题。当我尝试将主页上的产品添加到购物车时,它显示 404 错误,我正在使用 ajax 请求。
JS 代码:
jQuery.ajax(
url: "/add_to_cart",
method: "post",
data: jQuery('#formAddToCart').serialize(),
success: function(result)
我的主页 url 是“new_shop/”,当我从我的 js 代码 url 中删除“/”时,它运行良好,但是在我使用相同功能的产品详细信息页面和产品 url 上显示错误详细页面是“产品名称”,像这样没有“/”;添加到购物车的产品详细信息页面也不适用于“url:”/add_to_cart“”这个网址。我不知道混乱是什么,因为它在我的本地服务器上运行良好。我认为这可能是免费托管的问题。任何帮助将不胜感激。
路由 WEB.php 代码:
Route::post('add_to_cart',[FrontController::class,'add_to_cart']);
【问题讨论】:
您尝试过什么来解决问题?你被困在哪里了? 404 错误通常表示您正在调用一个不存在的路由 【参考方案1】:你在 js 代码中做错了。
您应该像这样为您的路线使用名称
Route::post('/add_to_cart',[FrontController::class,'add_to_cart'])->name('cart.add');
现在像这样从 js 代码中调用它
jQuery.ajax(
url: "route('cart.add')",
method: "post",
data: jQuery('#formAddToCart').serialize(),
success: function(result)
)
因为我不确定你的路线是否有组 你也可以试试这个
jQuery.ajax(
url: "URL::to('/add_to_cart')",
method: "post",
data: jQuery('#formAddToCart').serialize(),
success: function(result)
)
并确保您在表单数据中传递 csrf 令牌。
这样您就不必担心您的方法名称以及您的网址。您只需要为您的路线提供一个名称
【讨论】:
这位兄弟我也试过了,让我再试试 显示这个错误 "%7B%7Broute('cart.add')%7D%7D" 404 not found 如果您仍然卡住,请尝试我在答案中编辑的另一种方法以上是关于当我使用 ajax 发布请求时,为啥在我的 live laravel 项目中显示 404 和 405的主要内容,如果未能解决你的问题,请参考以下文章
当我在我的 Web 应用程序中发送 Ajax 请求时,控制器端会在 laravel 的请求参数中为我提供脚本
当我使用 HTTP 协议尝试请求时,为啥会收到错误的请求响应?