【发布时间】:2020-07-26 23:11:49
【问题描述】:
当我使用我的网络应用程序并从浏览器执行许多调用时,我的客户端被我的后端 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);
});
};
...
我知道这是一个非常重复的问题,但我已经阅读了很多帖子并没有找到解决方案......
【问题讨论】:
-
尝试将
app.options('*', cors())添加到您的index.js。请参阅npmjs.com/package/cors#enabling-cors-pre-flight 上的文档 -
我试过了,但没有任何反应,我认为我的问题来自前端
标签: node.js reactjs express cors