重定向 Redirects

未匹配的标注

通过 或手动发出非 GET Inertia 请求时,请务必始终以正确的 Inertia 响应进行响应。

例如,如果您正在创建一个新用户,请让您的「存储」端点将重定向返回到标准 GET 端点,例如您的用户索引页面。

Inertia 将自动跟随此重定向并相应地更新页面。 这是一个简化的例子。

Laravel

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

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

        return Redirect::route('users.index');
    }
}

303 状态码

请注意,在「PUT」、「PATCH」或「DELETE」请求后重定向时,必须使用303 响应码,否则后续请求不会被视为「GET」请求。 303 重定向与 302 相同,只是后续请求明确更改为 GET 请求。

如果您使用我们的官方服务器端适配器之一,重定向将自动转换。

外部重定向

有时需要在 Inertia 请求中重定向到外部网站,甚至是应用程序中的另一个非 Inertia 端点。 这可以使用服务器端发起的 window.location 访问来实现。

Laravel

return Inertia::location($url);

这将生成 409 Conflict 响应,其中包括 X-Inertia-Location 标头中的目标 URL。在客户端,Inertia 将检测到此响应并自动执行 window.location = url 访问。

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

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/inertia/0.11/re...

译文地址:https://learnku.com/docs/inertia/0.11/re...

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~