浏览器POST请求 变成OPTIONS(vue)

POST请求 变成OPTIONS

vue前端发送POST请求,用postman请求能正常访问,但是浏览器却会报错
在这里插入图片描述
在后台过滤器中debug,发现method请求方法变成了OPTIONS

浏览器POST请求 变成OPTIONS(vue)_第1张图片
因为后台是需要获取post请求 body中的参数,如果参数为空是不能通过的, 而请求变成options了 请求body是空的 所以后台报参数为空的错误。
现在知道了出错的原因,那么我们现在就来了解一下options方法

首先了解一下options是什么?
浏览器POST请求 变成OPTIONS(vue)_第2张图片
options在此问题中属于第二种,当涉及到跨域时,并且是post请求时,本地服务器会先发送一个options请求到服务器,如果服务器认为options请求时无危险性且认可的,那么在允许本地服务器发送post请求;但是如果后端认为options请求是危险且不成功的那么会直接阻止本地服务器发送其他请求

解决办法

直接在过滤器中判断方法如果是OPTIONS 则放行,简单粗暴
浏览器POST请求 变成OPTIONS(vue)_第3张图片
options方法通过了, 它会再次发送真正的POST请求

你可能感兴趣的:(springboot,class,过滤器,java,post,vue)