Для контекста, я работал над приложением springboot с интерфейсом ReactJS. Интерфейс ReactJS подключается к приложению springboot, и приложение обращается к другому серверу, чтобы получить запрошенные данные для отображения во внешнем интерфейсе. Я дошел до того момента, когда я смог сделать почтовый запрос с полезной нагрузкой JSON, получить запрошенные данные в виде другой полезной нагрузки JSON и без проблем отобразить их во внешнем интерфейсе.
Мне пришлось внести изменение и добавить еще одну переменную к объекту, который возвращался во внешний интерфейс. И теперь браузер сообщает мне, что:
Access to fetch at [url] been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Все, что отличается, - это добавление данных к возвращаемому объекту и тот факт, что я снова обращаюсь к серверу, на котором хранятся данные. .
Вот заголовок ответа, когда я не делаю дополнительный вызов, и я возвращаю JSON полезную нагрузку
HTTP/1.1 200
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: *
Set-Cookie: [I erased the cookie after pasting]
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 83363
Date: Thu, 09 Jul 2020 18:05:40 GMT
Keep-Alive: timeout=60
Вот заголовок ответа, когда я делаю дополнительный вызов
HTTP/1.1 500
Connection: close
Date: Thu, 09 Jul 2020 18:13:24 GMT
Я отлаживал бэкэнд, и никаких ошибок на стороне сервера не возникало, и при обработке данных ничего не происходит. У меня внезапно возникла проблема с CORS.
Ниже приведен мой почтовый запрос, который работал до сих пор
fetch(url, {
headers: {
'Content-Type': 'text/plain',
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate, br',
},
method: 'post',
body: JSON.stringify(jsonData)
})
Я уверен, что включил все, что мне нужно делать на стороне Springboot для CORS, учитывая, что он работает все время, за исключением попыток получить дополнительные данные. Если мне чего-то не хватает, я хотел бы знать, и если эту проблему можно прояснить, прочитав документацию по springboot и cors, укажите мне в этом направлении.
Примечание: я также пробовал добавить
@Configuration
@EnableWebMvc
public class SpringBootConfiguration implements WebMvcConfigurer{
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
в мое приложение, но это тоже не работает. Для меня это все еще в новинку, поэтому я не уверен, что происходит.
Спасибо.