Axios CORS Post Request Error
Пытаюсь реализовать jwt авторизацию,есть https://elepsio.herokuapp.com/auth/login возвращает токен
Поля username = test password = test
Но при авторизации выбивает CORS ошибку,на сервер хедеры установлены,в чем проблема ?
const SignInComponent = () => {
const signIn = useSignIn()
const [formData, setFormData] = React.useState({username: '', password: ''})
const onSubmit = (e) => {
e.preventDefault()
axios.post('https://elepsio.herokuapp.com/auth/login', formData)
.then((res)=>{
if(res.status === 200){
if(signIn({token: res.data.token,
expiresIn:res.data.expiresIn,
tokenType: "Bearer",
authState: res.data.authUserState})){
// Redirect or do-something
}else {
console.log("Pizda")
}
}
})
}
return (
<form onSubmit={onSubmit}>
<input type={"text"} onChange={(e)=>setFormData({...formData, username: e.target.value})}/>
<input type={"password"} onChange={(e)=>setFormData({...formData, password: e.target.value})}/>
<button>Submit</button>
</form>
)
}
Ответы (1 шт):
Кроме заголовка Access-Control-Allow-Origin в ответе вашего сервера должно быть кое-что ещё.
Перед любым запросом на сервер, сокет (ip + порт) которого отличается от сокета, который открыт в текущей вкладке, браузер хочет убедиться в безопасности запроса. Он автоматически отправляет на сервер OPTIONS запрос, т.е. как бы спрашивая уместно ли отправлять на сервер сейчас запросы? И если да, то какие методы нужно использовать? Ваш сервер должен отправить ответ, где содержится заголовок Allow. В этом заголовке должны быть перечислены методы, которые поддерживает сервер (например GET и POST).
Если браузер получит соответствующий ответ о том, что CORS поддерживается, запросы уместны, то сразу после OPTIONS он отправит ваш запрос, иначе будет ошибка, которую вы сейчас наблюдаете
