我有页面跟踪/跟踪像素页面,当前正在使用$ .post(PAIRS-DATA)将JavaScript中收集的信息发布回服务器。然后最终加载为跟踪像素。
finally
{
//tracking pixel
Response.ContentType = "image/gif";
byte[] buffer = pix.BinaryData;
int len = buffer.Length;
Response.OutputStream.Write(buffer, 0, len);
}
问题是$ .post(PAIRS-DATA)在Chrome中被取消,因为它是跨域的。所以我尝试了
$.ajax({
type: "POST",
dataType: "jsonp",
jsonp: false,
processData: false,
crossDomain: true,
url: "URL",
data: dataPairs
});
这解决了跨域问题,但是现在我得到“资源解释为脚本,但以MIME类型image / gif传输:”
我怎样才能解决这个问题? $ .ajax调用有问题吗?
最佳答案
您的ajax调用失败,因为JSONP要求服务器实际发送回JSONP(即JSON +包装器)。
如果必须先使用JS收集数据,然后才能加载图像,则可以尝试在图像的查询字符串中传递所需的数据。
例:$(document).append('<img src="http://host.com/path/to/image?' + formatDataAsQueryString());