如何使axios获得服务器端调用然后发送到客户端

时间:2018-04-13 15:24:08

标签: javascript reactjs server client

当我在客户端提出此请求时,我遇到了问题:

  componentDidMount = () => {
    console.log('app loading...');
    axios.get('some/random/api').then((res) => {
      console.log(res, 'res');
    })
  }

这是我服务器端代码的一部分:

app.use('/', express.static('public'));

axios.get(url, {
        "headers": {"Authorization": "Bearer "}
      })
      .then(response => {
        console.log(response)
       //I WANT TO SEND THE RESPONSE HERE TO THE REACT CLIENT
      })
      .catch(err => {
        console.log(err)
      })

我怎样才能在客户端选择这些数据?

感谢

3 个答案:

答案 0 :(得分:1)

  • 安装cors库: npm install --save cors
  • 将其导入您的快速项目:const cors = require('cors');
  • 在路线定义之前将cors附加到您的快递应用:app.use(cors())

    const express = require('express')
    const cors = require('cors')
    const app = express()
    
    app.use(cors())
    
    app.get('/', function (req, res, next) {
      res.json({msg: 'This is CORS-enabled for a Single Route'})
    });
    

答案 1 :(得分:0)

作为快速解决方法,您还可以安装此Chrome扩展程序

  

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

然而,持久的解决方案是使用yarn add cors并将其添加到快速js中的根文件中。如上所述@Artem Mirchenko

答案 2 :(得分:0)

你需要将你的服务器代码包装在一条路线中,按照artem的答案,就像这样:

app.get('/some/random/api', function (req, res, next) {
  // axios request to other server goes here
  axios.get(...)
    .then( other_server_response => {
      // process other server response if necessary here
      res.json({ returned_data: other_server_response });
    });
});

编辑:现在我看着它,我不确定这是你想要的。可能只需要从您的客户端调用其他服务并包含cors信息。