React Native android FormData 响应在 .json() 之后进入 catch 块

React Native android FormData response goes to catch block after .json()

我正在尝试 POST 数据与 FormData 以获得响应,在 iOS 上它按预期工作,但在 android 上它总是去catch 块,我发现原因是 response.json() 错误:[SyntaxError: JSON Parse error: Unrecognized token '']

这是我的代码:

const onAndroidSucks = () => {
        setLoading(true);
        let formData = new FormData();

        formData.append("number", number.replace(/\s+/g, '').substring(4));
        formData.append("id", userID);
        formData.append("token", userToken);

        fetch(ENDPOINT, {
            method: 'POST',
            headers: {
                'Content-Type': 'multipart/form-data'
            },
            body: formData
        }).then(response => response.json()).then(response => {
            if (response.res === 'no') {
                Alert.alert('ჰეჰე');
            } else {
                setData(response);
            }
            setLoading(false);
        }).catch(err => { Alert.alert(err.message); setLoading(false); } );
    };

我不明白这里的实际问题是什么。

原来问题出在 android 上的 okHttp。看起来 okHttp 在没有已知原因的情况下附加了一个空字符串 " "

以下是我使用变通方法解决该问题的方法:

}).then(response => response.text())
.then((res) => JSON.parse(res.trim())).then(response => {