You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下NextJs无法从Laravel API获取数据求助

问题:Next.js getServerSideProps请求Laravel API失败(浏览器/Postman可正常访问)

技术栈

  • Laravel
  • Next.js
  • Docker

问题描述

使用上述技术栈开发时,在浏览器和Postman中访问http://localhost:5001/api/surfaces均可正常获取数据,但在Next.js的pages/surfaces.js文件的getServerSideProps方法中发起请求时出现失败,错误截图显示请求失败,终端日志也存在异常信息。

相关代码

Next.js页面代码(pages/surfaces.js)

import AdminLayout from "../../modules/admin/layout/AdminLayout";
import Table from "../../sharedComponents/Table";
import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
import { useTranslation } from "next-i18next";
import { ContentHeader } from "../../modules/admin/SharedComponents/ContentHeader/ContentHeader";
import { ConfigDataTable } from "../../modules/admin/Surfaces/ConfigDataTable";

export default function Surfaces() {
  const { t } = useTranslation("common");
  
  return (
    <>
      <ContentHeader title={t('surfaces')} isCRUD={false} />
      <Table config={ConfigDataTable()} data={[]} />
    </>
  );
}

Surfaces.getLayout = function getLayout(page) {
  return <AdminLayout>{page}</AdminLayout>;
};

export async function getServerSideProps({locale}) {
  const response = await fetch('http://localhost:5001/api/surfaces/');

  console.log('ggg ',  await response.json());


  return {
    props: {
      ...(await serverSideTranslations(locale))
    }
  }
}

Nginx配置

server {
    listen  80;

    index index.php index.html index.htm;
    root /var/www/public;

    server_name  finaldraw.local;

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location ~ ^/.+\.php(/|$) {
        fastcgi_pass nadal:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Laravel CORS中间件代码

public function handle($request, Closure $next): mixed
{
    return $next($request)
        ->header('Access-Control-Allow-Origin', '*')
        ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
        ->header('Access-Control-Allow-Headers',' Origin, Content-Type, Accept, Authorization, X-Request-With, lang')
        ->header('Access-Control-Allow-Credentials',' true');
}

补充信息

请求URI:http://localhost:5001/api/surfaces


内容的提问来源于stack exchange,提问作者Juan Pablo B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:55:16