繁体   English   中英

Twitter跟踪像素导致MIME类型错误

[英]Twitter tracking pixel causing MIME type error

我正在尝试在我的Meteor / NodeJS网站上加载Twitter的跟踪像素

他们提供的代码是:

!(function(e, t, n, s, u, a) {
    e.twq ||
        ((s = e.twq = function() {
            s.exe ? s.exe.apply(s, arguments) : s.queue.push(arguments);
        }),
        (s.version = "1.1"),
        (s.queue = []),
        (u = t.createElement(n)),
        (u.async = !0),
        (u.src = "//static.ads-twitter.com/uwt.js"),
        (document.body.appendChild(u)));
   })(window, document, "script");

twq("init", "MY-TRACKING-ID");
twq("track", "PageView");

它加载正常,但在控制台中返回以下错误:

拒绝执行' https://analytics.twitter.com/i/adsct?p_id=Twitter ...'中的脚本,因为其MIME类型('text / html')不可执行,并且启用了严格的MIME类型检查。

这是完全相同的问题: https//twittercommunity.com/t/analytics-tracking-pixel-error-was-blocked-due-to-mime-type-mismatch-x-content-type-options-nosniff/ 83583/2 ,但是当该线程未解决时,他现在正在该网站上运行Twitter跟踪像素,这表明这是一个服务器配置问题。

查看代码, 来自Twitter的这个uwt.js文件请求来自https://analytics.twitter.com/i/adsct的脚本,Chrome阻止其运行。

这个答案表明它是MIME类型配置问题(我正在运行Nginx)或标题问题,但删除X-Content-Type-Options: nosniff并重新启动Nginx没有任何效果。

知道如何修复或更好地排除故障吗?

TLDR:这个可怕的错误消息证明Twitter实际上正在接收转换,所以谢天谢地,没什么好担心的。

根据Twitter的Google跟踪代码管理器说明实施时,我遇到了相同的控制台错误。 清除cookie对我的实例没有帮助。 事实上,同样的错误出现在Twitter自己的帮助页面上!

这是缩小的uwt.js脚本中的违规函数,公开为twttr.conversion.buildPixel()

buildPixel: function(e) {
    var t = new Image;
    t.src = e
},

一旦设置了src属性,用户代理就会排队对Image的请求,并且通常期望响应中的有效图像。 然而,Twitter的服务器提供content-type:text/html;charset=utf-8作为响应头。

Chrome的最新版本显然不喜欢将text/html加载到Image实例中,但可能会记录更好的错误消息,特别是因为响应还包含Content-Length: 0标头,表明没有什么可看的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM