Как добавить заголовок в axios.create в приложении react/redux

Я пытаюсь получить доступ к данным JSON, используя axios.create в моем приложении для реагирования на редукцию. Я установил преобразователь в качестве промежуточного программного обеспечения. Я получаю сообщение об ошибке «Нет заголовка Access-Control-Allow-Origin в запрошенном ресурсе». Из того, что я прочитал в Интернете, я мог бы решить эту проблему, добавив заголовки в вызов axios.create. Как мне это сделать?

//api file
import axios from 'axios';

export default axios.create({
  baseURL: 'https://www.thehomelike.com/search/'
})

//actions/index.js
import jsonPlaceholder from '../apis/jsonPlaceholder';

export const fetchPosts = () => {
  return async dispatch => {
    const response = await jsonPlaceholder.get('DE/Berlin?country=DE&east=13.499539418719593&lang=en-GB&lat=52.52000659999999&lng=13.404953999999975&locality=Berlin&mapLimit=24&north=52.5942101138977&south=52.445677542691186&west=13.310368581316283');

    dispatch({ type: 'FETCH_POSTS', payload: response })
  }
}

Это заголовки в соответствии с сетевым инструментом Chrome.

Response Headers:
access-control-allow-credentials: true
access-control-allow-headers: authorization
access-control-allow-methods: GET,HEAD,PUT,PATCH,POST,DELETE
access-control-allow-origin: https://www.thehomelike.com
date: Mon, 01 Apr 2019 06:23:11 GMT
server: nginx
status: 204
vary: Origin, Access-Control-Request-Headers
x-powered-by: Express
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
1 547
2

Ответы 2

Не могли бы вы попробовать использовать Postman для отправки запроса? Если Postman может отправить ваш запрос, эта ошибка исходит от вашего сервера. Если вы используете Express, этот фрагмент кода может помочь U, однако активирует CORS для всех ресурсов на вашем сервере.

var express = require('express');
var app = express();
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

Почтальон может отправить запрос, поэтому он загружает файл JSON.

Matt Brody 01.04.2019 06:09

Вы можете создать экземпляр axios с заголовком по умолчанию как

const request = axios.create({
  baseURL: 'https://www.thehomelike.com/search/', 
  headers: { // ...your headers}
});

Проблема, с которой вы столкнулись, может быть решена и на стороне server. Вы должны обновить политики сервера, чтобы разрешить CORS. Если у вас есть сервер в node-express, вы можете попробовать этот https://www.npmjs.com/package/cors

Какие я включаю? Я включил все заголовки ответов в нижней части сообщения.

Matt Brody 01.04.2019 08:26

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

Harish 01.04.2019 11:24

у меня нет доступа к серверу

Matt Brody 01.04.2019 22:02

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