在VUE 请求接口时候经常会遇见跨域问题,以前都是项目配置好的,今天搭一个项目,同事在请求头里做了一些数据操作,结果又是报跨域,又是报错,搞了半天终于搞清楚原因了。
先上解决办法:
//请求Ip 域名配置 response.setHeader("Access-Control-Allow-Origin", "*"); //请求方法 response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); //浏览器预请求有效期 response.setHeader("Access-Control-Max-Age", "3600"); //请求header头里允许放的头 response.setHeader("Access-Control-Allow-Headers", "*"); //响应头表示是否可以将对请求的响应暴露给页面。返回true则可以,其他值均不可以。 //Credentials可以是 cookies, authorization headers 或 TLS client certificates。 response.setHeader("Access-Control-Allow-Credentials", "true");
浏览器对应跨域的的策略是先发起一次OPTION 预请求,作用是
1、获取服务器支持的HTTP请求方法;
2、用来检查服务器的性能。
简言之就是先看看请求这个域名正不正常,正常了我再正常访问。 这个请求是没有请求体的,我同事在request 里面做数请求体据操作,所以总是报错。好了,就这么愉快的解决了。