Не удается отправить запрос POST API REST из расширения Chrome - PullRequest
2 голосов
/ 17 июня 2019

Я пишу расширение 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?Или, может быть, я просто смотрю в неправильном направлении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...