[英]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.