diff options
author | Alex Yatskov <alex@foosoft.net> | 2016-12-29 09:36:54 -0800 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2016-12-29 09:36:54 -0800 |
commit | c185125e9f558faa765a8b185bfe6d6e6ec8148b (patch) | |
tree | 263cc776551a875dec4c8ce3cb681a0be7497a41 /ext/bg | |
parent | 1e6feff20720685ba7ec4d8e295b0103a78209c6 (diff) |
fixing ankiweb breakage (resolves #26)
Diffstat (limited to 'ext/bg')
-rw-r--r-- | ext/bg/js/ankiweb.js | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/ext/bg/js/ankiweb.js b/ext/bg/js/ankiweb.js index 41bf74bd..dc6a5d49 100644 --- a/ext/bg/js/ankiweb.js +++ b/ext/bg/js/ankiweb.js @@ -21,6 +21,15 @@ class AnkiWeb { this.username = username; this.password = password; this.noteInfo = null; + + chrome.webRequest.onBeforeSendHeaders.addListener( + details => { + details.requestHeaders.push({name: 'Origin', value: 'https://ankiweb.net'}); + return {requestHeaders: details.requestHeaders}; + }, + {urls: ['https://ankiweb.net/*']}, + ['blocking', 'requestHeaders'] + ); } addNote(note) { @@ -133,20 +142,22 @@ class AnkiWeb { static loadPage(url, data) { return new Promise((resolve, reject) => { + let dataEnc = null; if (data) { const params = []; for (const key in data) { params.push(`${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`); } - url += '?' + params.join('&'); + dataEnc = params.join('&'); } const xhr = new XMLHttpRequest(); xhr.addEventListener('error', () => reject('failed to execute network request')); xhr.addEventListener('load', () => resolve(xhr.responseText)); - xhr.open('GET', url); - xhr.send(); + xhr.open('POST', url); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xhr.send(dataEnc); }); } } |