Axios 从 next.js 获取对 Laravel 端点的请求

Axios get request to Laravel endpoint from next.js

我对我的 laravel 端点有以下请求:

axios.get('http://localhost:8000/auth/login', {})
            .then(function (response) {
                console.log(response);
                return {};
            })
            .catch(function (error) {
                return {}
            });

我的 laravel 端点设置为:

public function index() {
        var_dump('login called.');die;
        return response()->json(
            [],
            200
        );
    }

我启动了我的 nextjs 服务器(端口 3000)和 laravel 服务器(8000),当我在浏览器中浏览到 localhost:8000/auth/login 时,我看到 "login called".但是,当我执行该 axios 调用时,我得到状态 200ok 但没有响应数据。

Request URL:http://localhost:8000/auth/login
Request Method:GET
Status Code:200 OK
Remote Address:127.0.0.1:8000
Referrer Policy:no-referrer-when-downgrade

知道我做错了什么吗?

你的代码没有问题,你得到了正确的响应,你看到 "login called" 因为你是从浏览器访问的,因此浏览器具有呈现 html 的能力,你可以看到那个。

但是 axios 调用需要 return 中的一些 json。 如果稍微调整一下响应:

public function index() {

        return response()->json(
            ['data' =>'Log in called'],
            200
        );
    }

如果你稍微调整一下 axios 响应

axios.get('http://localhost:8000/auth/login', {})
            .then(function (response) {
                console.log(response.data);
                return {};
            })
            .catch(function (error) {
                return {}
            });

检查元素打开控制台,你会看到'Log in called'