Ошибка 422 «необработанный объект» при вызове API из расширения Chrome - PullRequest
0 голосов
/ 28 октября 2019

Я создаю расширение Chrome, которое направлено на отправку информации (URL, заголовка и т. Д.) С текущей страницы пользователя на REST API с бэкэндом Rails. Вызов API работает, когда я тестирую его с почтальоном, но когда я отправляю данные через мое расширение, я получаю ошибку 422 (Unprocessable Entity).

Этот файл прослушивает щелчок в моем расширении:

function listenClick() {
  const button = document.getElementById('send-data');
  button.addEventListener('click', () => {
    chrome.tabs.executeScript({
      file: 'scripts/send-data.js'
    });
  })
}

listenClick();

Это файл send-data.js:

function fetchData() {
  title = document.querySelector('title').innerText;
  const url = window.location.href;

  return {
    title: title,
    url: url
  }
}

function sendData(data){
  const url = 'http://localhost:3000/api/v1/bookmarks';
  fetch(url, {
    method: 'POST',
    headers: {
      "Content-Type": "application/json",
      "X-User-Email": "test@mail.com",
      "X-User-Token": "asdfkljIOJDHalsdfkla"
    },
    body: JSON.stringify({
      "title": `${data.title}`,
      "url": `${data.url}`,
    })
  })
}

sendData(fetchData());

Ошибка возникает в строке, начинающейся с 'X-User-Email'. Я использую гем 'simple_token_authentication' для аутентификации пользователей, которые используют эти заголовки.

Может ли кто-нибудь помочь мне увидеть, что мне не хватает?

1 Ответ

0 голосов
/ 28 октября 2019

Понял, что проблема была в моем коде ruby, а не в js.file, указанном выше. Проверка логов рельсов помогла мне понять это.

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