React Native - 获取 POST 不工作

And*_*ves 1 javascript post fetch react-native

我在让我的 fetch POST 调用在 iOS 上工作时遇到了巨大的麻烦。我的标准 Fetch 调用工作正常,而 Fetch POST 调用在 android 上工作正常,但在 iOS 上不工作。

出现的错误是“Possible Unhandled Promise Rejection (id: 0): Unexpected token < in JSON at position 0”

它实际上将发布数据保存到我的服务器,但会引发该错误。

我尝试GLOBAL.XMLHttpRequest = GLOBAL.originalXMLHttpRequest || GLOBAL.XMLHttpRequest;在 API 调用之前调试网络请求,并在我的 chrome 调试工具中使用 CORS。从那里我可以看到它正在一个接一个地拨打两个电话。第一个类型为“OPTIONS”,而第二个类型为“POST”。可能应该注意的是,在使用 CORS 和上面的代码行时,该调用在应用程序中有效。

我很困惑,已经用尽了所有途径。

我用于参考的代码如下。

return fetch(url,{
        method: 'post',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    }).then((res) => res.json());
Run Code Online (Sandbox Code Playgroud)

omp*_*080 5

如果 JSON.stringify 不起作用,请尝试使用 FormData。

import FormData from 'FormData';

var formData = new FormData();
formData.append('key1', 'value');
formData.append('key2', 'value');

let postData = {
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'multipart/form-data'
    },
    body: formData
}

fetch(api_url, postData)
.then((response) => response.json())
.then((responseJson) => { console.log('response:', responseJson); })
.catch((error) => { console.error(error); });
Run Code Online (Sandbox Code Playgroud)