Нет 'Access-Control-Allow-Origin' одна выборка работает, другая нет

Я знаю, что этот вопрос задавали тысячу раз, но я не могу понять, почему один запрос на выборку работает, а другой - нет.

Я получаю сообщение об ошибке: «На запрошенном ресурсе отсутствует заголовок« Access-Control-Allow-Origin ». Следовательно, для источника« http: // локальный: 3000 »не разрешен доступ».

Вот рабочий

let responseGoogle = (response) => {
  console.info(response)
  let lastName = response.profileObj.familyName
  let firstName = response.profileObj.givenName 
  let email = response.profileObj.email 
  let tokenid = response.googleId

  let userData = {
    firstName: firstName,
    lastName: lastName,
    email: email,
    token_id: tokenid
  }

  window.location.replace("http://localhost:3000/")

  return fetch('/api/user', {
    method: 'post',
    body: JSON.stringify(userData),
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    }
  })
}

но этот не

handleClick = (name, symbol, price) => {
    this.props.setMessage()
    let userData = {
      name: name,
      symbol: symbol,
      priceAtSubscription: price
    }
    console.info(JSON.stringify(userData))
    return fetch('http://localhost:5000/api/user', {
      method: 'post',
      body: JSON.stringify(userData),
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      }
    })
  }

Это очень важно, большое спасибо за вашу помощь!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Между этими запросами есть ключевое различие. Первый, похоже, делает запрос к тому же источнику, что и клиентский сервер. Вот почему ваш URL-адрес просто /api/user. Когда клиент делает запрос к серверу того же происхождения, вам не нужно включать источник в URL-адрес, и нет проблем с CORS.

Ваш второй URL-адрес http://localhost:5000/api/user также включал источник в URL-адрес. Теперь ваш первый URL-адрес может работать либо из-за прокси-сервера, либо из-за того, что клиент обслуживается тем же сервером.

В случае прокси-сервера, включая происхождение, прокси-сервер будет передавать вам ошибку CORS.

В случае, когда второй запрос отправляется на другой сервер, вам необходимо убедиться, что сервер разрешит запрос от этого клиента.

Надеюсь это поможет.

Хаим ты ученый и человек. Это очень помогло понять, что происходит, спасибо!

Ricky 04.05.2018 02:51

очень рад помочь!

Chaim Friedman 06.05.2018 21:26

Другие вопросы по теме