【问题标题】:How to call GET api to send data in BODY using axios?如何使用axios调用GET api在BODY中发送数据?
【发布时间】:2019-05-29 05:37:22
【问题描述】:

我正在尝试使用 GET 方法在正文中发送数据。 当我尝试使用 POSTMAN/cURL/Python 运行时它工作正常,但使用 AXIOS(ReactJS) 时它不起作用。

卷曲:

curl -X GET \
  http://127.0.0.1:8000/xyz/xyz/ayx-api/ \
  -H 'Authorization: Token 980e4e673a9cfb4c99cb35313f65a446aa44faf7' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 1ee27393-b4b0-446a-b613-bd319e02e3c8' \
  -H 'cache-control: no-cache' \
  -d '{"dataId": 1, "date": "2018-03-01", "days": 9 }'

这个卷曲工作正常

使用 Axios:

import axios from 'axios';

const baseUrl = process.env.BACKEND_SERVER_URL;

export const fetchDataObjects = async() => {
    const header = {
            'Content-Type': 'application/json',
            'Authorization': `Token ${localStorage.token}`,

        }
    const data ={"dataId": 1, "date": "2018-03-01", "days": 9 }
    const res= await axios.get(`${baseUrl}/ayx-api/`,{data:JSON.stringify(data)}, {headers: header})
    // above line need to helop
    return res.data;
  }

如何在 get 方法中使用 axios 在正文中发送数据?

提前致谢。

【问题讨论】:

  • 使用 GET 请求发送数据是不明智的。这个answer 会很有帮助。

标签: reactjs api get axios


【解决方案1】:

The HTTP GET method requests shouldn't have a request body,axios 无法创建带有正文的 GET 请求。它也不能为你创建查询字符串,如果你想传递一个查询字符串,你必须手动完成,或者像qs

axios.get(`${baseUrl}/ayx-api/${qs.stringify(data)}`)

【讨论】:

  • 你检查curl,我们可以使用get方法发送数据
  • 我可以使用 pyhton/java/php/ajax/go/angular 等执行相同的操作。只是我需要使用 react 来执行
  • 可能是这种情况 - 但它对我们这些无法控制所使用的 API 接受什么的人没有帮助。我们正在使用一个大型商业公司的 API,他们的 API 的一个基本部分是 GET Bodies。所以不幸的是,这个答案对我没有帮助。这可能很糟糕,但归根结底,这是我需要实现的。
  • 此外,“无 GET 正文”规则实际上已从 HTTP 标准中删除。
  • Axios 不仅仅是一个客户端库,在我的情况下,我在服务器端应用程序中使用它。
猜你喜欢
  • 1970-01-01
  • 2019-03-03
  • 2019-10-01
  • 2018-04-24
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
相关资源
最近更新 更多