reactjs NextJS:带axios的getServerSideProps函数中出错

kt06eoxx  于 2023-02-18  发布在  React
关注(0)|答案(2)|浏览(184)

在主页面(index.js文件)上,我使用getServerSideProps函数

export async function getServerSideProps(context) {
    axios.defaults.headers.common['Lang'] = context.locale
    try {
        const response = await axios.get('/index?limit=8')
        return {
            props: {
                data: response.data
            },
        };
    } catch (error) {
        return {
            props: {
                error: error
            },
        };
    }
}

以前一切都很顺利,但现在开始出错了

connect EADDRNOTAVAIL ip:443 - Local (ip:0)

不过,如果在useEffect()中向同一地址发出请求,则一切正常
尝试升级到版本12 -错误仍然存在
截图

3pmvbmvn

3pmvbmvn1#

尝试

const response = await axios.get(`https://yourserver.com/index?limit=8`)

如果有效,则用.env变量替换https://yourserver.com
此外,尝试console.log您的变量:

const response = await axios.get('/index?limit=8')
console.log(response)

并检查您的API路径是否具有.get方法

qv7cva1a

qv7cva1a2#

getServerSideProps中,您必须键入完整的url http://localhost:3000/api/my-end-point
所以我在nextjs中有两个axios的示例。

import Axios from 'axios'

// Use in react component
const ClientAxios = Axios.create({
    baseURL: '/api'
})

// Use in getServerSideProps
const SystemAxios = Axios.create({
    baseURL: 'http://localhost:3000/api'
})

相关问题