通过将此链接放在html中,我设法使用了axios:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
我想做的是两次调用axios,一次是调用我的http请求以发送JSON对象,另一次是与JSON对象一起发送文件。我想要做的是使它同时被发送,这意味着用户不能只发送JSON对象本身或发送文件。但是,由于某些原因,我的代码未对此进行检查。我相信这是由于不存在异步,但是当我使用香草js时,idk如何添加它。这是我的代码:
axios.post('/account/signup', userObj).then((profile)=>{
//data returns current user info, including if they are verified or not
return axios.post('/account/signup/veteranFile-upload', formData)
}).then(()=>{
//window.location.replace('/')
console.log('Hello?')
}).catch( function (error){
showAppropriateTextSignUp(error.response.data, signupErr)
})
有关某些其他信息,我的模型要求发送文件和JSON数据。
答案 0 :(得分:0)
您的第二个then
在错误的位置。还定义了formData吗?
axios.post('/account/signup', userObj).then((profile)=>{
//data returns current user info, including if they are verified or not
return axios.post('/account/signup/veteranFile-upload', formData).then(()=>{
//window.location.replace('/')
console.log('Hello?')
}).catch( function (error){
showAppropriateTextSignUp(error.response.data, signupErr)
});
});
一种更简洁的方法:使用async await:
const api = async() => {
try{
const profile = await axios.post('/account/signup', userObj);
const whatever = axios.post('/account/signup/veteranFile-upload', formData);
console.log(whatever)
} catch (e) {
showAppropriateTextSignUp(error.response.data, signupErr)
}
}
答案 1 :(得分:0)
您可能需要链接axios调用而不是返回。那是
axios.post('/account/signup', userObj)
.then((profile)=>{
//current user info, including if they are verified or not
axios.post('/account/signup/veteranFile-upload', formData).then(resp=>{
//do something with the response
//window.location.replace('/')
}).catch(err=>{
console.log(err)
})
console.log('Hello?')
}).catch( function (error){
showAppropriateTextSignUp(error.response.data, signupErr)
})