Axios устанавливает заголовки, тип содержимого не работает в заголовках запросов в React Redux

 let input = {
    'email': email,
    'password': password
    };

    axios({        
        method:'POST',
        url: URL,
        headers: {
            'Content-type': 'application/json; charset=utf-8',
            'Accept': 'application/json; charset=utf-8'
         },
        data: input
    }).then(function (response){
        console.info(response);

    })
    .catch(function (error) {

    });

Я пытаюсь запросить API с помощью axios, используя метод post. Он не видел установить тип содержимого заголовков запросов, но если я использую jquery ajax, все в порядке.

Axios устанавливает заголовки, тип содержимого не работает в заголовках запросов в React Redux

вы пробовали вот так: headers: { 'Content-type': 'application/json', 'Accept': 'application/json' },?

Dkouk 05.06.2018 06:10

да ... Я пробовал, как вы написали, но не вышло.

Ah Hea Sk 05.06.2018 08:20

У меня тоже есть эта проблема. Какие-нибудь решения?

Funsaized 09.07.2018 20:23

На самом деле у меня такая же проблема, я думаю, это связано с политикой cors. Если вы посмотрите заголовок запроса, он включает в себя следующее: {‘Access-Control-Request-Header’: content-type} препятствует отправке нашего заголовка запроса типа содержимого. Одно временное исправление - отключить политику cors браузера. В сафари это можно отключить, нажав «Отключить перекрестное происхождение» в режиме разработки.

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

Ответы 3

Обычно charset=utf-8 не устанавливается вместе с заголовками.

Content-type: application/json; charset=utf-8 обозначает содержимое в формате JSON, закодированном в кодировке символов UTF-8. Указание кодировки для JSON несколько излишне, поскольку кодировка по умолчанию (только?) Для JSON - UTF-8.

это ошибка в axios -.- есть несколько проблем для этой проблемы.

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

import qs from 'qs'
let input = qs.stringify {
'email': email,
'password': password
});

axios
  .post(URL, input)
  .then(response => {
    console.info(response.headers)
    console.info(response.data)
  })
  .catch(function(error) {
    console.error(error)
  })

Spring Framework обеспечивает первоклассную поддержку CORS. CORS должен быть обработан до Spring Security, потому что предполетный запрос не будет содержать никаких файлов cookie (то есть JSESSIONID). Если запрос не содержит файлов cookie и Spring Security является первым, запрос определит, что пользователь не аутентифицирован (поскольку в запросе нет файлов cookie), и отклонит его.

Самый простой способ убедиться, что сначала обрабатывается CORS, - это использовать CorsFilter. Пользователи могут интегрировать CorsFilter с Spring Security, предоставив CorsConfigurationSource, используя следующее:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
  http
      // by default uses a Bean by the name of corsConfigurationSource
      .cors().and()
      ...
 }

@Bean
CorsConfigurationSource corsConfigurationSource() {
  CorsConfiguration configuration = new CorsConfiguration();
  configuration.setAllowedOrigins(Arrays.asList("*"));
  configuration.setAllowedMethods(Arrays.asList("*"));
  configuration.setAllowedHeaders(Arrays.asList("*"));
  UrlBasedCorsConfigurationSource source = new 
  UrlBasedCorsConfigurationSource();
  source.registerCorsConfiguration("/**", configuration);
  return source;
 }
} 

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