summaryrefslogtreecommitdiff
path: root/ext/bg/js/ankiweb.js
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2016-12-29 09:36:54 -0800
committerAlex Yatskov <alex@foosoft.net>2016-12-29 09:36:54 -0800
commitc185125e9f558faa765a8b185bfe6d6e6ec8148b (patch)
tree263cc776551a875dec4c8ce3cb681a0be7497a41 /ext/bg/js/ankiweb.js
parent1e6feff20720685ba7ec4d8e295b0103a78209c6 (diff)
fixing ankiweb breakage (resolves #26)
Diffstat (limited to 'ext/bg/js/ankiweb.js')
-rw-r--r--ext/bg/js/ankiweb.js17
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);
});
}
}