Skip to content

Commit 2c3fb0b

Browse files
committed
Restore defensive checks for overwritten fetch() in token injection
1 parent 5ab844b commit 2c3fb0b

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

assets/js/token-injection.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,21 @@
3838
options.signal = AbortSignal.timeout(cfg.timeout);
3939
}
4040

41-
return fetch(cfg.ajaxUrl, options)
41+
let response;
42+
43+
try {
44+
response = fetch(cfg.ajaxUrl, options);
45+
} catch (err) {
46+
log('Token fetch failed for form ' + cfg.formId + ': ' + err.message + '. Using fallback token.');
47+
return Promise.resolve(cfg.fallbackToken);
48+
}
49+
50+
if (!response || typeof response.then !== 'function') {
51+
log('Token fetch failed for form ' + cfg.formId + ': fetch returned non-thenable. Using fallback token.');
52+
return Promise.resolve(cfg.fallbackToken);
53+
}
54+
55+
return response
4256
.then((res) => {
4357
if (!res.ok) {
4458
throw new Error('AJAX ' + res.status);

0 commit comments

Comments
 (0)