Skip to content

Commit 44ab5e3

Browse files
committed
Fix CORS preflight blocking browser event tracking.
Allow Content-Type on API responses so /events and /feedback POSTs from the site succeed; flush key funnel events immediately.
1 parent 44336db commit 44ab5e3

3 files changed

Lines changed: 5 additions & 2 deletions

File tree

counter-worker.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ function corsHeaders(origin) {
2222
return {
2323
"Access-Control-Allow-Origin": ALLOWED.indexOf(origin) >= 0 ? origin : ALLOWED[0],
2424
"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
25+
"Access-Control-Allow-Headers": "Content-Type",
2526
"Cache-Control": "no-store",
2627
"Content-Type": "application/json"
2728
};

en/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4037,10 +4037,11 @@ <h2 class="rise" style="--d:0">How it works</h2>
40374037
} catch (e) { return 'anon'; }
40384038
})();
40394039
var TRACK_Q = [], TRACK_TIMER = 0, TRACK_PINS_SENT = false;
4040+
var TRACK_FLUSH_NOW = { solve_ok: 1, solve_fail: 1, solve_empty: 1, wizard_open: 1, wizard_done: 1, wizard_done_partial: 1 };
40404041
function trackEvent(name) {
40414042
if (!TRACK_EVENTS[name]) return;
40424043
TRACK_Q.push({ e: name, t: Date.now() });
4043-
if (TRACK_Q.length >= 8) trackFlush();
4044+
if (TRACK_Q.length >= 8 || TRACK_FLUSH_NOW[name]) trackFlush();
40444045
else if (!TRACK_TIMER) TRACK_TIMER = setTimeout(trackFlush, 4000);
40454046
}
40464047
function trackFlush() {

index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4102,10 +4102,11 @@ <h2 class="rise" style="--d:0">Как это работает</h2>
41024102
} catch (e) { return 'anon'; }
41034103
})();
41044104
var TRACK_Q = [], TRACK_TIMER = 0, TRACK_PINS_SENT = false;
4105+
var TRACK_FLUSH_NOW = { solve_ok: 1, solve_fail: 1, solve_empty: 1, wizard_open: 1, wizard_done: 1, wizard_done_partial: 1 };
41054106
function trackEvent(name) {
41064107
if (!TRACK_EVENTS[name]) return;
41074108
TRACK_Q.push({ e: name, t: Date.now() });
4108-
if (TRACK_Q.length >= 8) trackFlush();
4109+
if (TRACK_Q.length >= 8 || TRACK_FLUSH_NOW[name]) trackFlush();
41094110
else if (!TRACK_TIMER) TRACK_TIMER = setTimeout(trackFlush, 4000);
41104111
}
41114112
function trackFlush() {

0 commit comments

Comments
 (0)