Я пишу расширение Chrome для моего отдела продаж, чтобы помочь переносить лиды с одной учетной записи Freshsales на другую, и я использую их RESTful API для достижения этой цели.GET-запросы работают нормально, но я не могу сделать какие-либо запросы POST (или даже PUT).
Ответ всегда либо «422 Unprocessable Entity» (когда я пытаюсь привести в порядок JSON I 'm пытаюсь отправить), или «500 Internal Server Error» (когда я пытаюсь отправить JSON как есть).Странно то, что проблема не в конечной точке - я могу успешно отправлять POST-запросы к ней из приложения Node.js и даже с помощью cURL.Поэтому я предполагаю, что это как-то связано с расширением.
Приведенный ниже код использует JQuery Ajax для отправки запроса, однако я также пробовал это с fetch, XmlHTTPRequest, и я даже пытался использовать Axios просто для пользыизмерения.Ничего не работает.
Это фрагмент с тестовой функцией из моего файла popup.js
(ранее он был в content.js
, и он не работал точно так же):
$.post({
url: "https://{domain}.freshsales.io/api/leads",
headers: {
"Authorization": "Token token={api_token}",
"Content-Type": "application/json"
},
data: {"lead":{"first_name":"James","last_name":"Testson","email":"james.test@gmail.com","company":{"name":"Business Inc."}}}
}).then(function(res){
console.log(res);
}, function(err){
console.log(err);
});
}
Вот мой manifest.json
(это отредактированный пример из учебника, поэтому, возможно, есть некоторые ненужные разрешения)
{
"name": "Lead Transfer Tool",
"version": "1.0",
"description": "guess what it does",
"permissions": [
"activeTab", "declarativeContent", "storage", "https://*/*"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"page_action": {
"default_popup": "popup.html"
},
"manifest_version": 2
}
Самая большая проблема в том, что я даже не могу отладить это правильно - ответэто либо один код ошибки (в случае ошибки 422), либо вся HTML-страница, которая в основном говорит: «Что-то пошло не так, извините, и т. д.»(в случае ошибки 500).Есть ли что-то конкретное, что связано с расширениями Chrome?Или, может быть, я просто смотрю в неправильном направлении?