Cors в Ajax Meet 302 Redirect

У меня есть интерфейсный сервер с портом 8081 фоновый сервер с портом 8080 (Spring MVC + shiro)

Когда я отправляю запрос на 8080, я должен установить заголовки cors на 8080

Если запрос является простым запросом, который возвращает только некоторые данные json, он работает

Но когда статус ответа 302, Chrome показывает

Redirect from 'http://localhost:8080/' to 'http://localhost:8080/' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

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

① если я перехватываю этот статус 302 и раздаю этот response.headers.Location, Я решу это. Но я не могу перехватить этот ответ (с аксиомами)

② Возможно, некоторые настройки неверны с сервером 8080, когда происходит 302, серверу не установлены заголовки cors для этой страницы. Но я не понимаю бэкэнд-код.

Итак, ① возможно? или мне нужно поменять настройки на сервере 8080?

этот вопрос сложен для понимания, обратитесь к этой странице и отредактируйте свой вопрос: stackoverflow.com/help/how-to-ask

Ibo 31.07.2018 07:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
386
1

Ответы 1

Междоменный CORS отправит запрос к OPTIONS заранее, этот запрос не прикрепляет токены, это приводит к перехвату запроса shiro, чтобы определить, что текущий пользователь не вошел в систему, что вызывает проблемы, решение заключается в наследовании FormAuthenticationFilter.

@Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
  boolean allowed = super.isAccessAllowed(request, response, mappedValue);
  if (!allowed) {
    String method = WebUtils.toHttp(request).getMethod();
    if (StringUtils.equalsIgnoreCase("OPTIONS", method)) {
      return true;
    }
  }
  return allowed;
}

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