设置cookie可通过跨域图像api访问

Set cookie accessible by cross domain image api

本文关键字:图像 api 访问 cookie 可通过 设置      更新时间:2023-09-26

我有一些域lorem.com, ipsum.comdolor.com等。它们都通过一个中央映像API myapi.com访问映像。我需要myapi.com才能知道请求客户端的屏幕尺寸和宽度。我正在考虑使用类似于这里描述的解决方案:https://css-tricks.com/server-side-mustard-cut/

TLDR:一个小的javascript函数找出屏幕的宽度和高度,然后保存到一个cookie。对图像api的请求应该在头中包含该cookie,以便服务器可以计算出要发回的图像有多大。

问题是这是跨域的。lorem.com有一个像<img src="http://www.myapi.com/image1" />这样的图像标签,但cookie不会包含在该请求中,因为它是由运行在lorem.com页面上的脚本设置的

我在网上找到的解决方案涉及iframes和假图像标签与display:none,实际上从第三方域名调用php脚本来设置cookie。

问题是我需要设置cookie客户端具有适当的高度和宽度信息。我不能使用php脚本来设置它,因为php脚本不知道高度和宽度。

是否有一些不涉及iframe或迂回解决方案的非黑客方法?谢谢!

有两个选项:

1)使用JavaScript更新img url,将高度和宽度信息作为图像url本身的查询参数,而不是依赖于cookie,例如:"/>

2)如果你必须使用cookie,那么如果你控制myapi.com,那么你可以旋转一个端点他们的客户端宽度和高度参数,并在响应返回set-cookie头。由于调用是对myapi.com进行的,浏览器将允许它为myapi.com设置cookie,并将其传递给对该域的后续调用,尽管您将无法从JavaScript访问此cookie,因为您不是在myapi.com

下运行