跨域 img 设置 cookie | 您所在的位置:网站首页 › 图片跨域显示 › 跨域 img 设置 cookie |
从技术层面来讲,我们可以设置 img标签需要带上cookie等凭据来向后端请求图片资源,后端检测凭据是否合法来决定是否返回相应资源 以 img 标签为例,其它例如 audio、img、link、script和 video均有一个跨域属性 (crossOrigin property),它允许你配置元素获取数据的 CORS 请求。
设置 crossorigin="use-credentials"表示请求将带上凭据:
Note: The domain must match the domain of the JavaScript origin. Setting cookies to foreign domains will be silently ignored. https://stackoverflow.com/a/6761443
用于演示携带的 cookie 因为是跨域请求,这时候要浏览器带上cookie就需要设置以下红色框的内容,又因为是 https 请求,所以要设置绿框的内容
web服务器的设置(nginx):
最终可以看到请求中携带了cookie: 情形: egg.js 做后端接口, jQuery做前端请求。设想:调用user/login接口后,后端设置cookie,然后前端每次请求都会自动带上cookie。 然而现实是后面的请求在控制台中,根本没有cookie而且后端打印后面的接口也是没有cookie的。
后端跨域设置见: https://www.jianshu.com/p/202d760758d2
解决办法: 后端设置cookie:
前端ajax接口(login接口,后续的接口)都加上withCredentials: xhrFields: { withCredentials: true }, crossDomain: true,
ajax设置后,已经有cookie了。
egg.js controller中其他接口中获取浏览器带过来的cookie:
清除cookie直接使用null替换即可: 欢迎分享,转载请注明来源:内存溢出 原文地址:https://outofmemory.cn/zaji/6442776.html |
CopyRight 2018-2019 实验室设备网 版权所有 |