我正在尝试使用axois和react-redux登录我的Django应用程序。我的问题是,当我输入错误的登录信息时,LOGIN_FAIL操作可以正常工作,但是当输入正确的登录信息时,LOGIN_SUCCESS操作不起作用,并产生以下错误“未捕获(承诺)TypeError:无法读取未定义的属性'data'” 。我很困惑!!我也尝试过使用邮递员登录,并且工作正常。我怎么解决这个问题?谁能解决我的问题? 预先感谢。
这是我的操作代码:
import axios from "axios";
import {
errorMessage
} from "./messages";
import {
USER_LOADING,
USER_LOADED,
AUTH_ERROR,
LOGIN_SUCCESS,
LOGIN_FAIL
} from "./types";
// Login User
export const login = (username, password) => dispatch => {
// Headers
const config = {
headers: {
"content-type": "application/json"
}
}
// Request body
const body = JSON.stringify({
username,
password
});
axios.post("/api/auth/login", body, config)
.then(res => {
dispatch({
action: LOGIN_SUCCESS,
payload: res.data
});
}).catch(err => {
dispatch(errorMessage(err.response.data, err.response.status));
dispatch({
type: LOGIN_FAIL
});
});
}
答案 0 :(得分:1)
将标题“ content-type”更改为“ Content-Type”
// Headers
const config = {
headers: {
"Content-Type": "application/json"
}
最后在axios内将“操作”更改为“类型”,然后阻止
axios.post("/api/auth/login", body, config)
.then(res => {
dispatch({
type: LOGIN_SUCCESS,
payload: res.data
});
仅此而已。
答案 1 :(得分:0)
无需执行JSON.stringify。
const body = {
username,
password
};