【问题标题】:React axis post request returns empty data object but POSTMAN returns data反应轴发布请求返回空数据对象但 POSTMAN 返回数据
【发布时间】:2021-10-15 07:20:57
【问题描述】:

我的 axios 请求是这样形成的:

    const query = JSON.stringify({'username': 'testuser'})
    const headers = {'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded'}

    useEffect( () => {
        axios({
            method: 'POST',
            headers: headers,
            url: 'http://54.158.146.220/FetchSongs.php',
            data: query
        })
            .then(response => {
                console.log(response)
            })
    }, [url])

但是提交这个请求给了我没有数据的响应 200,即使当我用邮递员发送它时它会显示数据。

【问题讨论】:

  • 您可以从邮递员生成代码并检查请求之间的不同之处
  • @Raz 好的,但它不能在反应中完成。你发现我的代码有什么问题吗?

标签: reactjs axios postman


【解决方案1】:

你没有在正文中得到任何东西,因为你没有正确传递数据,当 Content-Type 是 application/x-www-form-urlencoded 时,数据(你的 query 变量)不应该是 JSON 格式。

application/x-www-form-urlencoded:键和值被编码在键值元组中,由& 分隔,键和值之间有=。键和值中的非字母数字字符都是百分比编码的:这就是为什么这种类型不适合用于二进制数据的原因(改用multipart/form-data)

来自MDN - POST

要以正确的格式传递数据,您可以使用URLSearchParams

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2021-02-26
    • 2017-06-19
    相关资源
    最近更新 更多