Я занимаюсь разработкой приложения Chrome и использую XMLHttpRequest для выполнения запросов к API Clio. Ответ был 404 (не найден), но если я сделаю тот же запрос с библиотекой «запросов» Python, ответ работает! с тем же URL и теми же заголовками.
ответ
manifest.json
{
"name": "PlannerGAC",
"version": "0.0.5",
"manifest_version": 2,
"minimum_chrome_version": "29",
"oauth2": {
"client_id": "4684711774-526eld0fcv8s9la0jf2n21lquops17oh.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/auth/calendar"
]
},
"icons": {
"128": "calendar.svg"
},
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXaBUTn1PNjYo8fg+1JBmWBA3bdrn7siqzkY0tYeuNHIWi5ji+6V5Y3QWYRFQh3AFwrZaBItvaM3fsit7K++kDoD67VhYGrGd+mjl4Htmp+/HbzzCQMBJdTdTOvR722+VHmIttzbe/I7GB3a74KvPYfUENONj1tswyKkuXeMgFOQIDAQAB",
"app": {
"background": {
"scripts": ["js/background.js"]
}
},
"permissions": [
"identity",
"https://ssl.gstatic.com/",
"https://www.googleapis.com/",
"https://accounts.google.com/",
"https://app.clio.com/*",
"https://app.asana.com/"
]
}
Функция JavaScript
`chrome.identity.launchWebAuthFlow(details, function(responseUrl) {
console.log(responseUrl);
var code = responseUrl.indexOf("code") + 'code'.length + 1;
code = responseUrl.slice(code);
this.code = code;
console.log(this.code)
var params = 'client_id=' + this.clientId + '&client_secret=' + this.clientSecret +
'&grant_type=authorization_code' + '&code=' + this.code + '&redirect_uri=' +
this.redirectUri;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://app.clio.com/oauth/token?' + params);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send();
console.log(xhr.response)
}.bind(this));`