Ошибка получения POST-запроса JSONPlaceholder - Javascript - PullRequest
0 голосов
/ 16 июня 2020

Я следовал точному коду, который был упомянут в документации JSONPlaceholder об отправке запроса POST, который:

    fetch('https://jsonplaceholder.typicode.com/posts', {
    method: 'POST',
    body: JSON.stringify({
      title: 'foo',
      body: 'bar',
      userId: 1
    }),
    headers: {
      "Content-type": "application/json; charset=UTF-8"
    }
  })
  .then(response => response.json())
  .then(json => console.log(json))

// Output
{
  id: 101,
  title: 'foo',
  body: 'bar',
  userId: 1
}

Мой код - (я просто не включил заголовки, которые, по моему мнению, не являются причиной ошибки PS - Даже если я включу заголовки, проблема все еще сохраняется.)

const sendHttpRequest = function (url, httpMethod, title, content) {
  if (httpMethod === 'GET') {
    return fetch(url, {
      method: httpMethod,
    });
  } else if (httpMethod === 'POST') {
    // not working
    fetch(url, {
      method: httpMethod,
      body: JSON.stringify({
        title: title,
        body: content,
        userId: Math.random(),
      }),
    });
  } 
};

const sendPost = function (event) {
  event.preventDefault();
  const title = document.getElementById('title').value;
  const content = document.getElementById('content').value;
  sendHttpRequest(
    'https://jsonplaceholder.typicode.com/posts',
    'POST',
    title,
    content
  );
};

Ошибка -

Доступ к выборке в 'https://jsonplaceholder.typicode.com/posts' из источника 'null' был заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'. Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса на 'no-cors', чтобы получить ресурс с отключенным CORS. POST https://jsonplaceholder.typicode.com/posts net :: ERR_FAILED

...