跨域 img 设置 cookie 您所在的位置:网站首页 图片跨域显示 跨域 img 设置 cookie

跨域 img 设置 cookie

2023-03-25 00:50| 来源: 网络整理| 查看: 265

从技术层面来讲,我们可以设置 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 实验室设备网 版权所有