【问题标题】:Can't connect AWS S3 ReactApp to Heroku Node/Express API无法将 AWS S3 ReactApp 连接到 Heroku Node/Express API
【发布时间】:2021-06-04 21:43:39
【问题描述】:

我已经将 react-app 部署到 AWS S3 和 heroku 中的节点/express API,但我无法将它们连接在一起事件与 API 中的 cors 配置或 react-应用程序 我找不到正确的方法。

前端包.json

    "name": "frontend",
    "proxy": "https://planet-api-test.herokuapp.com/",
    "version": "0.1.0",
    "private": true,

app.js

    const [message, setMessage] = useState('')

    useEffect(() => {
        const myFunction = async () => {
            const { data } = await axios.get('/api/users')
            setMessage(data)
        }
        myFunction()
    })

server.js

import express from 'express'
import cors from 'cors'
import userRoutes from './routes/userRoutes.js'

const app = express()
const port = process.env.PORT || 5000

app.use(express.json())
app.use(cors())
app.use('/api/users', userRoutes)

控制台错误

【问题讨论】:

    标签: node.js reactjs amazon-web-services amazon-s3 heroku


    【解决方案1】:

    由于某种原因,您的应用尝试将请求发送到 http 而不是 https 尝试在 axios.get 中对其进行硬编码,看看会发生什么

    【讨论】:

    • 在 axios 中硬编码 url 效果很好,正如您所见,它尝试向同一 aws s3 存储桶的 url 发出请求,而不是代理 package.json 中的 api url
    • 试着把它放在你的 index.js : axios.defaults.baseURL = 'https://planet-api-test.herokuapp.com/'; 中,它会设置你的基本网址,但你必须先删除代理。
    • 好吧,使用该配置axios.defaults.baseURL = 可以正常工作,但是,这是正确的方法吗?有什么改善吗?
    • 我认为更简单的方法就是将它们部署在同一个平台上,为什么要分开它们呢?
    • 这是我第一次这样做,想法是使用具有 3 个不同接口的 api。这有意义吗?
    猜你喜欢
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 2020-02-20
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多