反应原生(iOS)上执行GET而不是POST的fetch()

时间:2016-08-11 15:58:56

标签: ios react-native fetch

我的组件中有以下代码:

fetch('https://domain.com/api', {
  method: 'POST',
  headers: {'Accept': 'application/json', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    key: 'value'
  })
}).
  then((response) => {
    console.log('Done', response);
  });

每次请求都是GET(已检查的服务器日志)。我认为这与CORS(但显然在react-native中没有这样的东西)和ATS(但默认情况下已关闭,加上我的域名为HTTPS)有关。我已经尝试过浏览器和curl并且它运行良好,所以在服务器配置上没有先验问题。知道这里发生了什么吗?

我使用的是最新的react-native版本。

2 个答案:

答案 0 :(得分:4)

进一步挖掘后,这绝对是API + fetch的问题。我在URL的末尾错过了一个斜杠,并且API发出了301,fetch无法正确处理。所以我不知道在fetch函数(和底层机制)中是否有某些东西要修复,但这解决了我的问题:)

答案 1 :(得分:0)

当重定向POST时(在我的情况下从http到https),它会转换为GET。 (不知道为什么......)