ajax - 即使 url、路由器和控制器指向同一个地方,Laravel 和 Ajax 也会根据请求返回 404
问题描述
如您所见,一切都已正确路由,我还有其他功能可以执行类似的操作并且工作正常,但我不断收到此错误:
POST http://localhost:8000/apagados/4 404(未找到)
删除 http://localhost:8000/apagados/4 404(未找到)
//Buttons
<button id="{{'botRestaurarProjeto'.$apagado['id']}}" value="{{$apagado['id']}}" class="botRestaurarProjeto rounded bg-blue-300 text-white p-2">Restaurar</button>
<button id="{{'botEliminarProjeto'.$apagado['id']}}" value="{{$apagado['id']}}" class="botEliminarProjeto rounded bg-red-700 text-white p-2">Excluir</button>
<script>
$(document).on("click", ".botRestaurarProjeto", function () {
let id = $(this).val();
$.ajax({
method: 'POST',
url: "apagados/"+id,
data: {
"id": id,
},
success: function(result) {
location.reload();
},
error: function(jqXHR, testStatus, error) {
// console.log(jqXHR.responseText);
console.log(testStatus);
console.log(error);
}
});
});
//AJAX
$(document).on("click", ".botEliminarProjeto", function () {
let id = $(this).val();
if(confirm("Deseja apagar definitivamente?") == true){
$.ajax({
method: 'DELETE',
url: "apagados/"+id,
data: {
"id": id,
_method: 'DELETE'
},
success: function() {
$("#lixo"+id).hide();
},
error: function(jqXHR, testStatus, error) {
console.log(jqXHR.responseText);
}
});
}
});
</script>
//ProjetoController
public function eliminar($id)
{
$projeto = Projeto::find($id)->withTrashed();
$projeto->forceDelete();
}
public function restaurar($id)
{
$projeto = Projeto::find($id)->withTrashed();
$projeto->restore();
}
//Router
Route::delete('apagados', [ProjetoController::class, 'eliminar'])->name('posts.eliminar');
Route::post('apagados', [ProjetoController::class, 'restaurar'])->name('posts.restaurar');
解决方案
http://localhost:8000/apagados/4
正如您指定的那样,它不是有效的路线:
Route::delete('apagados', [ProjetoController::class, 'eliminar'])->name('posts.eliminar');
Route::post('apagados', [ProjetoController::class, 'restaurar'])->name('posts.restaurar');
所以,有效的 URL 是http://localhost:8000/apagados
. 如果您希望它按预期工作,则必须将路线更改为:
Route::delete('apagados/{id}', [ProjetoController::class, 'eliminar'])->name('posts.eliminar');
Route::post('apagados/{id}', [ProjetoController::class, 'restaurar'])->name('posts.restaurar');
阅读更多关于Route
.
推荐阅读
- java - 显示一年中最低的平均价格,以及该价格的周数,以及它发生的月份的名称
- python - 基于元数据从对象存储中检索对象
- perl - 哪个作业在哪个节点上运行?
- react-admin - 如何使用 ArrayInput 解析和格式化值转换道具
- python - 错误“utf-8”编解码器无法解码位置 268 中的字节 0x96:读取文件 csv 时的起始字节无效
- java - Android Studio View 的显示方式与我的手机(三星 Galaxy S5)不同
- ansible - 在模板 jinja2 方面需要帮助
- c++ - 索引数组时我应该总是使用 size_t 吗?
- python - 将填充的 2-D 图/对象(由 plt.fill 创建)添加到 3-D 图中
- linux - /proc/sys/vm/flush_mmap_pages 去哪儿了?