被CORS政策封锁:没有“访问控制允许来源”

时间:2020-04-14 09:00:26

标签: node.js reactjs express cors

当我使用Web应用程序并通过浏览器进行多次调用时,我的客户端被后端API阻止(在邮递员上尝试时,我没有遇到这个问题),有时以一种方法有时是另一种方法,即GET或POST。

我正在使用nodejs并在后端表示,这是我的 index.js:

const functions = require('firebase-functions');
var express = require('express');

var cors = require('cors');
var app = express();
app.use(cors({ origin: true}));

在前端,我使用react,并使用Axios进行API调用:

我在 App.js 中定义了baseURL:

axios.defaults.baseURL = 'API_URL/api';

然后在redux / actions中进行get / post调用:

export const loginUser = (userData, history) => (dispatch) => {
    dispatch({ type: LOADING_UI });
    axios.post('/login', userData)
    .then((res) => {
        setAuthorizationHeader(res.data.token);
        dispatch(getUserData());
        dispatch({ type: CLEAR_ERRORS});
        history.push('/');
    })
    .catch((err) => {
        dispatch({
            type: SET_ERRORS,
            payload: err.response.data
        });
    });
};


export const getProfileData = (userHandle) => (dispatch) => {
    dispatch({ type: LOADING_PROFILE });
    axios.get(`/user/${userHandle}`)
    .then((res) => {
        dispatch({
            type: SET_PROFILE,
            payload: res.data
        });
    })
    .catch((err) => {
        console.log(err);
    });
};
...

我遇到的错误: enter image description here

我知道这是一个非常重复的问题,但是我读了很多文章,却没有找到解决方法...

1 个答案:

答案 0 :(得分:0)

我的问题是由我部署到Firebase的多个触发器引起的。他们创建了对Firebase Functions的大量调用,并且超出了配额,因此解决方案是更改计划。