说说前端小伙伴遇到的问题前端
后台小伙伴指定了POST请求,请求头'Content-Type': 'application/json'vue
经过Allow-Control-Allow-Origin拓展解决跨域(这里的跨域方式会致使浏览器没法携带cookie),经过jquery设置'Content-Type': 'application/json',jquery
相应面板显示200,成功,可是返回数据为 application/json no support 等。ios
在swagger上模拟请求,数据是正确的web
后面发现是后台返回的格式为字符串致使。chrome
在没找出问题以前,担忧是跨域问题,就借用了另外一个cli3搭建的项目,经过axios去请求,经过proxy解决跨域json
发现axios({method: 'post'})或axios.post都会被转为GET请求(代理又不是jsonp),并返回一个请求连接的字符串。axios
查看chrome网络请求为GET而且request headers里没有发现'Content-Type,跨域
因而从新设置headers: {'Content-Type': 'application/json' },请求变为POST,请求成功。浏览器
登陆接口成功,可是请求别的接口的时候被重定向到登陆超时接口
发现登陆请求的接口,显示200,可是没有cookie写入,因此会重定向到别的接口
查看响应头是有cookie写入的
配置vue.config.js proxy
'/': { target: 'http://x.x.x.x:10021/tb-customer-web_war/',//真实请求地址 ws: true, changOrigin: true, pathRewrite: function(path, req) { //重写路径, return path.replace('/', '');/ }, cookiePathRewrite: {//重写cookie路径 '/tb-customer-web_war': '/' } },
完美解决