React app fetch仅适用于iPhone Safari

时间:2018-03-28 03:07:01

标签: node.js reactjs fetch

我有一个令人困惑的问题。我有一个React / Redux前端,从两个后端提取数据。一个后端,我用Node构建自己。第二个后端由NASA运行。

问题:fetch调用仅适用于iPhone Safari上的NASA API。它不适用于我的Node后端。它在计算机上工作正常,而不是我的手机。

我已经做过的事情:

  1. whatwg-fetch - 这没什么用。它仍然存在,但它没有改善任何东西

  2. REACT_APP _... - 我确保用前缀" REACT_APP ..."命名我的API地址。确保create-react-app不会阻止数据通过。它没有做任何有用的事情。

  3. 这是一个有效的提取调用:

    export const getNasaImage = () => dispatch => {
        return fetch('https://api.nasa.gov/planetary/apod?api_key=IBNbXHbyn8pC2k9EVxumOUauFaccdzinCD0WJcSA', 
        {
            method: 'GET'
        })
        .then(res => res.json())
        .then(imageData => {
            dispatch(setNasaImage(imageData))
        }); 
    }
    

    以下是同一文件中的提取调用,该调用无法在iPhone上运行:

    export const getAllQuizes = () => dispatch => {
        dispatch(quizLoading(true)); 
        return fetch(`${REACT_APP_API_URL}/quiz/`, 
            {
                method: 'GET', 
            }
        )
        .then(res => res.json())
        .then(quizes => {
            dispatch(setAllQuizes(quizes.quizes))
            return dispatch(quizLoading(false));
        })
        .catch(err => {
            console.error(err); 
            dispatch(quizLoading(false));
            return Promise.reject();  
        }); 
    };  
    

    这是我的配置文件,其中REACT_APP_API_URL来自:

    if (process.env.NODE_ENV === 'development'){
        module.exports = {
            REACT_APP_API_URL: 'http://localhost:8080'
        }  
    } else {
        module.exports = {
            REACT_APP_API_URL: 'THEAPIADDRESS'
        }
    }
    

0 个答案:

没有答案