设置跨越域图像api可访问的cookie

时间:2016-09-01 03:21:37

标签: javascript cookies

我有许多域lorem.comipsum.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

页面上运行的脚本设置的

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

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

是否有一些非hacky方式可以解决这个问题,而不涉及iframe或迂回解决方案?谢谢!

1 个答案:

答案 0 :(得分:0)

这里有两个选项:

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

2)如果必须使用cookie,比如果你控制myapi.com以及则可以旋转的端点其内搭客户端的宽度和高度PARAM以及响应返回set-cookie头。由于呼叫到myapi.com发,浏览器会让它设置myapi.com的cookie,它会传递给后续调用该域,虽然你会因为你没有在myapi运行不能访问从JavaScript这个cookie。 com