重定向

未匹配的标注

重定向

当手动或通过<Link>元素进行非GET的Inertia请求时,您应确保始终响应正确的Inertia重定向响应。

例如,如果您的控制器正在创建新用户,则store端点应返回一个重定向到标准的GET端点,比如用户的index页面。Inertia将自动跟随此重定向并相应地更新页面。

class UsersController extends Controller
{
    public function index()
    {
        return Inertia::render('Users/Index', [
            'users' => User::all(),
        ]);
    }

    public function store(Request $request)
    {
        User::create(
            $request->validate([
                'name' => ['required', 'max:50'],
                'email' => ['required', 'max:50', 'email'],
            ])
        );

        return to_route('users.index');
    }
}

303 响应码

PUTPATCH或者 DELETE 请求后进行重定向时,必须使用 303 响应码,否则后续请求将不会被视为 GET 请求。 303 重定向与 302 重定向非常类似;但是后续请求明确更改为了 GET.

如果您使用我们官方提供的服务器适配器之一,则所有重定向都会自动转换为 303.

外部重定向

有时,在处理Inertia请求时需要将其重定向到外部网站甚至是另一个非Inertia端点。可以使用服务器端发起的 window.location 访问来实现,通过 Inertia::location() 方法。

return Inertia::location($url);

Inertia::location() 方法将生成一个带有目标URL的 409 Conflict 响应,并在 X-Inertia-Location 头部中包含该URL. 当客户端接收到此响应时,Inertia将自动执行 window.location = url 的访问。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~