【问题标题】:can't get node api from heroku using axios on react app无法在反应应用程序上使用 axios 从 heroku 获取节点 api
【发布时间】:2021-04-21 02:13:00
【问题描述】:

在我将节点 api 成功部署到 heroku 之后。我尝试使用类似https://something.herokuapp.com/somefilter 的heroku 地址访问我的节点api。我正在使用 chrome 和邮递员,它正在工作。它返回 json 对象

但是当我尝试使用 axios 从本地主机上的 react 应用程序中获取它时,它不起作用并导致错误“未处理的拒绝(TypeError):无法读取未定义的属性“数据””

这是我导致错误的反应代码

async function getResults() {
        try {
            const res = await axios.get(`https://something.herokuapp.com/somefilter`);
            dispatch({
                type: 'GET_TRANSACTIONS',
                payload: res.data.data
            });
        } catch (err) {
            dispatch({
                type: 'TRANSACTION_ERROR',
                payload: err.response.data.error
            });
        }
    }

但如果我在 localhost:5000 上为我的节点 api 运行此反应代码,它运行良好并生成 json 对象

async function getResults() {
        try {
            const res = await axios.get(`/somefilter`);
            dispatch({
                type: 'GET_TRANSACTIONS',
                payload: res.data.data
            });
        } catch (err) {
            dispatch({
                type: 'TRANSACTION_ERROR',
                payload: err.response.data.error
            });
        }
    }

【问题讨论】:

    标签: reactjs heroku axios


    【解决方案1】:

    问题解决了。经过搜索,我发现问题出在cors上。我尝试从这篇文章中解决 CORS problems on HEROKU 有效

    将这 2 行添加到我的 server.js 中只是为了简单使用

    var cors = require('cors')
    app.use(cors());
    

    【讨论】:

      猜你喜欢
      • 2018-04-22
      • 2018-01-13
      • 2019-02-04
      • 2021-10-30
      • 2018-03-05
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多