天天看点

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

POST请求 变成OPTIONS

vue前端发送POST请求,用postman请求能正常访问,但是浏览器却会报错

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

在后台过滤器中debug,发现method请求方法变成了OPTIONS

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

因为后台是需要获取post请求 body中的参数,如果参数为空是不能通过的, 而请求变成options了 请求body是空的 所以后台报参数为空的错误。

现在知道了出错的原因,那么我们现在就来了解一下options方法

首先了解一下options是什么?

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

options在此问题中属于第二种,当涉及到跨域时,并且是post请求时,本地服务器会先发送一个options请求到服务器,如果服务器认为options请求时无危险性且认可的,那么在允许本地服务器发送post请求;但是如果后端认为options请求是危险且不成功的那么会直接阻止本地服务器发送其他请求

解决办法

直接在过滤器中判断方法如果是OPTIONS 则放行,简单粗暴

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

options方法通过了, 它会再次发送真正的POST请求