我有页面跟踪/跟踪像素页面,当前正在使用$ .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());

09-10 11:19
查看更多