我正在通过创建图像标签并将其注入 DOM 来在 javascript 中创建像素图像。
标签看起来像这样:
<img style="height:0;visibility:hidden;display:none;" src="http://xyz.com/pixel.aspx">
正如你所看到的,这个标签实际上会调用一个 ASP.Net 页面,它会做一些处理并写回一个像素,如下所示:
byte[] _imgbytes = Convert.FromBase64String("R0lGODlhAQABAIAAANvf7wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
Response.ContentType = "image/gif";
Response.AppendHeader("Content-Length", _imgbytes.Length.ToString());
Response.Cache.SetLastModified(DateTime.Now);
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.BinaryWrite(_imgbytes);
我需要的是一种将一小段数据(在像素请求之前在 javascript 中生成的 GUID 值)传递到服务器或将一些数据(在像素 aspx 代码中生成的不同 GUID)传递回浏览器的方法一种可以被javascript获取的方式。
注意事项:
- 不能使用查询字符串,因为像素需要可缓存,如果查询字符串不同,则在后续请求中不会从浏览器缓存中提取像素(文件名将不同)。
- 无法使用 cookie,像素请求与应用程序位于不同的根域上,并且在禁用第三方 cookie 的情况下需要此功能。
- 不能使用AJAX,因为不想担心跨域问题