我是ReactJS的新手,我尝试在API调用中设置默认的auth值。我使用基本的auth进行登录,这是我正在使用的代码:
axios.defaults.auth.username = process.env.REACT_APP_AUTH_USERNAME
axios.defaults.auth.password = process.env.REACT_APP_AUTH_PASSWORD
axios.defaults.headers["user_token"] = JSON.parse(localStorage.getItem("uid"))
当服务器启动时(yarn start
),会掷回此错误:
fakebackend_helper.js:700
Uncaught TypeError: Cannot set properties of undefined (setting 'username')
at ./src/helpers/fakebackend_helper.js (fakebackend_helper.js:700:1)
at options.factory (react refresh:6:1)
at __webpack_require__ (bootstrap:24:1)
at fn (hot module replacement:62:1)
at ./src/store/DropDownList/saga.js (reducer.js:28:1)
at options.factory (react refresh:6:1)
at __webpack_require__ (bootstrap:24:1)
at fn (hot module replacement:62:1)
at ./src/store/sagas.js (reducers.js:59:1)
at options.factory (react refresh:6:1)
当我这样使用auth时,它工作得很完美。
axios
.post(url.UPDATE_PROGRESS_NOTE_BY_STAFF, data, {
headers: {
user_token: JSON.parse(localStorage.getItem("uid")),
},
auth: {
username: process.env.REACT_APP_AUTH_USERNAME,
password: process.env.REACT_APP_AUTH_PASSWORD,
}
})
.then(response => {console.log(response)})
.catch(err => {console.log(err)})
}
在axios.defaults
中也有auth.username
和密码选项来创建它们作为默认值,这就是为什么我使用这个而不是像axios.defaults.headers.common["Authorization"] = "Basic" + token
,但没有找到正确的方式来设置值。
请在这方面指导我。
1条答案
按热度按时间6ljaweal1#
AxiosDefaults
类型将auth
定义为这意味着它可能是未定义的(并且可能是默认的)。
您只需设置整个
auth
对象