请求get变化为options的问题解决办法
遇到问题:
项目上线后,原来的get请求的接口变成了OPTIONS,且接口是200 Ok.
显然,这个接口是没有调通的,且控制台打印了错误:
显然这是关于跨域的问题
为什么会出现请求变成options呢?
非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为”预检”请求(preflight),在post,put,delete发送之前发送一个 OPTIONS 请求,以判断服务端是否允许这一域访问.
所以这是一个正常的机制。
这个机制下产生的现象是在触发一次功能是会产生两个请求,一个OPTIONS”预检”请求,一个后续的正式请求。在OPTIONS请求成功后才会发送后续的请求。
所以options请求后,成功,但是不允许跨域,自然就报错了。
解决办法:后端设置了NGINX代理解决跨域问题;