next.js 从 Laravel 获取数据

Posted

技术标签:

【中文标题】next.js 从 Laravel 获取数据【英文标题】:next.js fetch data from Laravel 【发布时间】:2022-01-20 10:04:54 【问题描述】:

我正在使用 Laravel 和一个简单的代码编写一个简单的用户注册

public function register()

    $this->validate(request(), [
        'name' => 'required',
        'email' => 'required|email|unique:users',
        'password' => 'required'
    ]);

    $user = User::create(request(['name', 'email', 'password']));
    
    auth()->login($user);

    return [
        'status' => true,
        'user' => $user
    ];

然后我发送数据表单Next.Js

使用axios:

let config = 
    method: 'post',
    url: `http://localhost:8000/api/register`,
    headers: 
        'Content-Type': 'application/json',
    ,
    data: values,

axios(config)
.then(json => console.log(json))

没问题,但是我发了一个用过的邮箱,会通过422码,axios抓不到结果

使用fetch:

fetch('http://localhost:8000/api/register', 
    method: "post",
    mode: 'no-cors',
    body: new URLSearchParams(data)
).then(res => res.json())
.then(json => console.log(json))

也可以,但使用邮箱时,会发送302码,并调用索引/

【问题讨论】:

“会通过422码,axios抓不到结果”——为什么不在axios的promise链中加一个.catch(...)呢?跨度> 【参考方案1】:

我认为您错过了添加 .catch(...) 以返回错误对象,如文档中的示例 Axios docs

【讨论】:

以上是关于next.js 从 Laravel 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Next.js 中的服务器获取 HOC 中的数据?

Next.js:如何从元素中获取应用样式?

使用 getServerSideProps 获取内部 API? (Next.js)

Next.js + Redux:在 getInitialProps 中获取数据操作完成之前加载一个页面

Next.js + Redux:在服务器端获取的数据永远不会移动到页面道具

Next.js:在 getInitialProps() 中获取数据:服务器端与客户端