POST 方法在 react-native 应用程序(Android)中不起作用(Fetch 或 Axios)
Posted
技术标签:
【中文标题】POST 方法在 react-native 应用程序(Android)中不起作用(Fetch 或 Axios)【英文标题】:POST method doesn't work (Fetch or Axios) in a react-native app (Android) 【发布时间】:2019-09-18 22:30:10 【问题描述】:我正在使用Axios
或Fetch
执行API CALL
宽度POST
方法,但在android 上发送错误的Content-Type
。
发送application/json; charset=utf-8
而不是application/json
它在 iOS 上运行良好,GET
方法似乎在两个平台上运行良好。
1) 我的应用是使用 Create-React-Native App 创建的,并与 Expo 一起使用
2) 到目前为止我所尝试的:
我阅读了很多主题(github / ***)并进行了一些更改:在标题中,发送另一种内容类型,更改Postman
中接收到的数据等-使用Axios
或Fetch
示例:'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
我试过的代码(基本一样)
fetch('URL',
method: 'POST',
headers:
'TOKEN': 'TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json',
,
body: JSON.stringify(data),
).then((response) => console.log(response))
或
axios(
method: 'post',
url: LOGIN_API_URL,
headers:
'Content-type': 'application/json',
'TOKEN': 'MyTestToken',
,
data: data,
).then((response) => console.log(response.data))
我得到的错误:
title: "ERROR", code: "invalid ContentType", description: "Content-Type expeced: application/json, Content-Type received: application/json; charset=utf-8", success: false
我想为两个平台发送正确的content-type: 'application/json'
:ios 和 android
如果我错过了一些答案,对不起:)
【问题讨论】:
你启用了 react native 调试器吗?也许这会导致错误 不,我禁用了所有功能。我拥有的唯一信息在我的终端中,因为我使用“expo start”运行该应用程序。我用我得到的确切错误更新了我的主题 【参考方案1】:这看起来像是 axios 方面的错误(请参阅 https://github.com/axios/axios/issues/859 )
似乎有一个可能的解决方案与是否提供data
参数有关(https://github.com/axios/axios/issues/86):
https://github.com/axios/axios/issues/86#issuecomment-405930811
const config =
headers:
accept: 'application/json',
,
data: ,
;
我希望这可以为您指明正确的方向。
【讨论】:
以上是关于POST 方法在 react-native 应用程序(Android)中不起作用(Fetch 或 Axios)的主要内容,如果未能解决你的问题,请参考以下文章
fetch() 在 react-native (iOS) 上做 GET 而不是 POST
在 react-native 中发送请求标头/授权 axios.post