Android上的React Native Fetch不会传递选项

时间:2018-09-17 15:09:39

标签: android react-native fetch

在iOS上正常运行时,我似乎无法让Android传递任何选项。它似乎去到端点并删除方法,标题和正文。我不确定,因为当我添加下面提到的一些代码进行调试时,它可以工作。

let data = JSON.stringify({
    appKeyLookup: CONSTANTS.APP_KEY_LOOKUP,
    username: username,
    password: password,
});
try {
    let response = await fetch(CONSTANTS.API_URL + 'login/', {
        method: 'POST',
        headers: {
            Accept: 'application/json',
            'Content-Type': 'application/json',
            'Cache-Control': 'no-cache',
        },
        body: data,
    });
    let responseJSON = await response.json();

真正奇怪的是,如果我添加

const _XHR = GLOBAL.originalXMLHttpRequest ?  GLOBAL.originalXMLHttpRequest : GLOBAL.XMLHttpRequest            
XMLHttpRequest = _XHR

到入口点,然后安装chrome扩展Allow-Control-Allow-Origin:*

工作正常。因此,似乎与CORS有关,但我不确定。

我使用的是React Native 0.56.0

1 个答案:

答案 0 :(得分:0)

所以我终于想通了。 Android将“ charset = utf-8”附加到Content-Type。使它成为“ Content-Type:” application / json; charset = utf-8'。这导致我使用的API出现问题。当我以为它会剥夺身体时,我是完全错误的。

我从React-Native appends "charset=utf-8" to HTTP call Content-Type中发现了这一点,这使我获得了两种不同的解决方案。

Java Fix

JavaScript Fix