Laravel - React,强制 Axios 进行拒绝/捕获

Posted

技术标签:

【中文标题】Laravel - React,强制 Axios 进行拒绝/捕获【英文标题】:Laravel - React , Forcing Axios for reject/catch 【发布时间】:2018-11-30 05:34:29 【问题描述】:

我有一个Laravel API,它向当前用户发送 JSON UserObject(如果已登录)或None/空白结果(如果没有当前用户)。

前端是 React with axios 从 API 获取数据。

        Axios.get('/api/user/current')
        .then((response) => 
        )
        .catch((error)=>
            alert('Login Failed '+ error);
        ); 

因为Axios 是一个promise,它要么解析要么拒绝。

如果我在 API 中发送一个空白值,它仍然会被视为解析。 如果 API 中没有当前用户,我如何强制 axios 拒绝。

我可以在响应回调中使用if..else 来区分用户和访客,但我只是想知道它是否可以强制捕获。

【问题讨论】:

【参考方案1】:

如果您不想发回任何数据,您应该以 204 状态响应。如果该特定资源不存在,甚至更好的是 404。

404 将被 axios 视为拒绝。

【讨论】:

【参考方案2】:

您可以使用 axios interceptors 修改请求和响应。

【讨论】:

以上是关于Laravel - React,强制 Axios 进行拒绝/捕获的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 资源控制器 DELETE 使用 Axios 抛出 405

Axios CORS/Preflight 因 Laravel 5.4 API 调用而失败

React 路由器 + Axios 拦截器。如何进行重定向?

axios 将参数传递给 laravel 路由

axios将参数传递给laravel路径

axios/laravel/formdata 发布请求为空