ajax跨域请求导致sessionid不一致问题
问题背景描述:
前端:vue框架
后端.net webapi
审核资料的时候,需要先上传报告,完成后再审核通过(要审核通过必须先上传资料)
后台拿到上传资料后缓存文件路径(为啥不直接存?因为客户端分两步走的,有可能客户很任性第一步走完后,第二步不走了)
缓存文件路径时用了session存储
本地postman测试正常,放到线上提交就报错,提示让客户先上传报告文件
本地联调发现postman发送两次请求sessionid相同,前端发请求时两次请求的sessionid不同,导致无法获取上一次存储的文件路径
然后各种百度,处理结果如下:
a、在前端发起ajax请求时,需要加入xhrFields
$.ajax({ url:"http://citygame1234.4kb.cn/CityServer/w/login", type:"post", async:"false", dataType:"json", crossDomain: true, xhrFields: { withCredentials: true }, success:function(data){ console.log(data); } });
b、在服务端需要设置Access-Control-Allow-Credentials的值为true
具体如何设置得看你具体如何设置跨域请求的
我本地用了Install-Package Microsoft.AspNet.WebApi.Cors这个扩展组件,具体设置方法如图,也可以参考本文下面的大神文章

参考:
https://www.cnblogs.com/landeanfen/p/5177176.html

浙公网安备 33010602011771号