Inertia / Laravel PATCH 重定向也尝试更新引荐来源网址
P粉265724930
2023-09-04 11:56:57
<p>我有一个 Laravel / InertiaJS 应用程序,我可以在其中从 Vue 前端执行 Axios 请求来更新某些模型。就我而言,我有一个<strong>提案</strong>显示页面,其中还显示与该提案相关的<strong>任务</strong>。</p>
<p>我有一个 Vue 子组件,它执行 Axios 调用来更新特定任务:</p>
<pre class="brush:php;toolbar:false;">const moveToNextStatus = (status) => {
console.log('run')
// update the status of the task using axios
axios.patch(`/data/tasks/${props.task.id}`, {
status: status
})
}</pre>
<p>这是它所指的路线:</p>
<pre class="brush:php;toolbar:false;">Route::patch('/data/tasks/{task}', [\App\Http\Controllers\TaskController::class, 'update'])->name('tasks.update');</pre>
<p>然后,在我的 Laravel <strong>TaskController</strong> 中,我的更新方法如下所示:</p>
<pre class="brush:php;toolbar:false;">public function update (Request $request, Task $task)
{
$task->update($request->all());
return redirect()->back();
}</pre>
<p>由于某种原因,当 Axios 对 PATCH /tasks/{task} 的请求触发时,它还会调用路由 <strong>PATCH /proposals/{proposal}</strong> 并尝试更新失败的提案。< /p>
<p>也许这与从子组件重定向有关?有人可以帮我吗?</p>
Inertia 的文档指出;
您可以在此处的文档中找到此内容:https://inertiajs.com/redirects
它还希望您使用非标准帮助程序进行重定向,例如;
我不同意它,但事实就是如此 - 当页面根本没有重定向时使用 303 似乎违反了网络状态代码标准。