请问既要跨域访问,也要Ajax时传输Cookie

mdjs147 2018-01-20 09:19:50
有3个站点:A.test.cn 和 B.test.cn API.test.cn
A,B均为MVC,API为WebApi
现在的情况是 A先要访问api 拿到身份信息,这些信息是存在cookie中的,domin为test.cn。
然后要求A,B站之后访问api接口均要携带此cookie。
A调用API接口,API开启Cros可以跨域处理AJAX请求,但因为origin设置为*。不能接受跨域cookie。
 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); //从配置文件的appsettings节点中读取跨域的地址

A,B站想要AJAX携带cookie需要设置
 xhrFields: {
withCredentials: true
},

这个项有要求origin不能设置为*。改了API下的origin为http://A.test.cn 还是回报origin不正确
想问下,如何能保证api返回的cookie A,B站均能正常使用(跳转页面,刷新),能跨域AJAX访问api,携带cookie?

origins要怎么填写才是正确格式,如果填写多个站点地址?

查了几天百度,真的是痛苦不堪,只能厚着脸皮来求实现的代码
...全文
591 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
设计一个 http 服务,在上下行的参数中定义好所以明确的、必要的参数就可以了,本来就不应该去管那一大堆 cookie。 js 按照服务接口要求提交必要的参数,参数应该放到正规的参数格式中。cookie 这种不管用不用都反反复复copy的东西在20年前是很新潮很实用,而今天其实是比较垃圾的了。
  • 打赏
  • 举报
回复
cookie 由 js 程序自己来读写,跟 ajax 无关,跟后台服务无关。 功能服务本来就不应该考虑 cookie。虽然 asp.net 有一大堆多余的功能,结果这让 asp.net 程序员完全混沌了,完全不懂 js 了。这反而是悲剧。 最近5年,html5已经普及。在新的 web 协议中有一大堆新的前端底层技术基础(例如 websocket、canvas、html和css、可以再无法连服务器的客户端仍然维持前端界面——主要是为了h5的app使用——等等新功能等),cookie 其实已经废弃,代之以 localStorage 等等几种全新的存储技术。纠结 cookie 比较落后了。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧