javascript 404错误提示(Laravel)

4jb9z9bj  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(84)

我一直得到一个404错误,即使我的路线应该是正确的。我已经刷新了缓存/路由,并确保epHash和fileHash是正确的。它正在进入PHP函数,因为我让它在声明$file之前创建一个文本文件。

PHP
public function deleteFile($epHash, $fileHash) {
        $user = Auth::user();

        if (!Auth::check() || !$user->is_admin) {
            abort(500);
        }

        $file = File::findOrFail($fileHash);

        Storage::delete($file->path . $file->name);
        $file->delete();
        return response()->json([
            'advisors' => Advisor::with([
                "user.person.contactInfo",
                "clients",
                "clients.person.contactInfo",
                "clients.spouse",
                "clients.estatePlans",
                "clients.estatePlans.files",
                "user.person",
                "clients.estatePlans.files.createdBy"
            ])->get(),
        ]);
    }
路线
Route::delete('/api/estatePlan/{epHash}/{fileHash}/delete', [Controllers\ClientInfoController::class, 'deleteFile']);
JavaScript
deleteFile(epHash, fileHash) {
            Swal.fire({
                title: "Are you sure you want to delete this file?",
                icon: "warning",
                showCancelButton: true,
                confirmButtonText: "Yes",
                cancelButtonText: "No",
            }).then((result) => {
                if (result.isConfirmed) {
                    axios
                        .delete(`/api/estatePlan/${epHash}/${fileHash}/delete`)
                        .then((response) => {
                            console.log("DELETED FILE SUCCESSFULLY");
                        })
                        .catch((error) => {
                            console.log(error.response);
                        });
                }
            });
        },

我期待着有电话通过,我已经检查了我的laravel日志,也没有什么。

avwztpqn

avwztpqn1#

如果你使用Laravel作为API,你应该在API中定义你的路由。php文件包含在routes文件夹中,而不需要将/API添加到定义的路由中(它是自动添加的),所以它会像:

Route::delete('/estatePlan/{epHash}/{fileHash}/delete', [Controllers\ClientInfoController::class, 'deleteFile']);

清除缓存并通过执行php artisan route:list命令检查路由是否显示在路由列表中。
调用路由时,请确保在URL中还包含Laravel所在的域。然后,您可以使用以下URL从javascript调用路由(考虑Laravel托管在localhost:8000上的本地环境):

http://localhost:8000/api/estatePlan/${epHash}/${fileHash}/delete

不要忘记使用php artisan serve启动您的服务器。

相关问题