You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel编辑页面Ajax POST请求报错问题求助

问题原因与解决方案

问题根源

你遇到的报错是相对路径解析不一致导致的:

  • create.blade页面的URL是admin/cotizaciones/create,../getcp会被解析为admin/getcp,正好匹配你定义的POST路由Route::post('getcp', ...)。
  • edit.blade页面的URL是admin/cotizaciones/{id}/edit,../getcp会被解析为admin/cotizaciones/getcp,这个路径属于Route::resource生成的路由集合,而该集合中此路径对应的方法不支持POST请求,因此抛出错误。

解决方案

方案1:给路由命名,使用路由名称生成绝对URL

修改路由定义,为getcp路由添加名称:

Route::resource('cotizaciones', CotizacionController::class)->names('admin.cotizaciones');
Route::post('getcp', [CotizacionController::class, 'getcp'])->name('admin.getcp');

在Ajax的url参数中使用Blade的route()函数生成绝对URL,彻底避免相对路径问题:

$.ajax({
    type: "post",
    url: "{{ route('admin.getcp') }}",
    data: cp,
    // 其他代码保持不变
});

方案2:直接使用绝对路径

如果不想修改路由,可直接在Ajax中写完整的绝对路径(注意匹配你的路由前缀,这里假设前缀是admin):

$.ajax({
    type: "post",
    url: "/admin/getcp",
    data: cp,
    // 其他代码保持不变
});

额外优化建议

你的data参数可以直接传入对象,比拼接字符串更简洁易维护:

data: { cp: $.trim($(this).val()) },

内容的提问来源于stack exchange,提问作者WarLion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 09:34:57