イメージタグを作成して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 を使用できません