所以我想使用 axios 从前端向 Laravel 发送请求,它是跨源的,所以前端在localhost:3000,后端在localhost:8000/api,
在 Laravel 中,我已经应用了 CORS中间件。在 axios 我已经设置了标题。
axios 设置
axios.defaults.baseURL = API_URL
axios.defaults.headers.common.Accept = 'application/json'
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*'
axios 发布和删除:
function create(){
return dispatch => {
return new Promise((resolve,reject)=>{
HTTP.get('/post/category/create')
.then((data)=>{
return resolve(data.data.data)
}).catch((data)=>{
return reject(data)
})
})
}
}
export function destroy(data){
return dispatch => {
return new Promise((resolve,reject)=>{
HTTP.delete(`/post/category/${data}`)
.then((data)=>{
return resolve(data.data)
}).catch((data)=>{
return reject(data)
})
})
}
}
我如何调用函数:
var SubmitCategory = async (e) => {
e.preventDefault();
var formData = new FormData(e.target)
await setSubmit(true);
await props.dispatch(insert(formData))
.then(data=>{
toaster(data.message,data.status)
props.history.replace({
pathname: `/post/category`
})
})
.catch(data=>{
toaster(data.message,"error")
setError(data)
})
await setSubmit(false)
}
<form autoComplete="off" onSubmit={e=>SubmitCategory(e)}> <<--- onSubmit
...////
这发生在每种方法上,所以当我创建一些东西时,它会创建两条记录,当我删除一些东西时,第一个将被成功删除,而第二个不需要的请求失败(因为它已经被删除)。
我的第一个想法是 axios 发送了两个请求,其中一个是OPTIONS方法,我做了一些谷歌研究,它无法关闭以及其他一些处理它的方法,仍然没有。
牛魔王的故事