ПРИМЕЧАНИЕ: я уже разобрался с решением. Я просто публикую сообщение о проблеме и решении на тот случай, если у других возникнет аналогичная проблема
Короче говоря:
Я получаю это сообщение об ошибке CORS в окне инструментов разработчика моего браузера, когда у меня клиентское приложение REACT делает HTTP-сообщение на веб-сервере Java, запущенном на сервере Payara из NetBeans:
SEC7120: [CORS] Источник 'http://localhost:3000' не найден
'http://localhost:3000' в ответе Access-Control-Allow-Origin
заголовок для перекрестного источника ресурса в
«http://localhost:8080/DatabaseWebService/databaseConnectorMethod'.
Для получения дополнительной информации о CORS, пожалуйста, обращайтесь на этот сайт https://enable -cors.org /
Подробная история:
У меня есть проект REACT, работающий на http://localhost:3000, который отправляет HTTP-сообщение в имеющуюся у меня веб-службу Java (DatabaseWebService), работающую на локальном сервере Payara версии 4.1.1. URL веб-службы, который запрашивает приложение REACT: 'http://localhost:8080/DatabaseWebService/databaseConnectorMethod'
Каждый раз, когда я запускаю код REACT, я получаю ошибку CORS, указанную выше.
Вот мой РЕАКТ-код, отправляющий запрос http:
const postData = new URLSearchParams();
postData.append('var1', 'somedata1');
postData.append('var2', 'somedata2');
let axiosConfig = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
axios.post('http://localhost:8080/DatabaseWebService/databaseConnectorMethod', postData, axiosConfig)
.then((res) => {
console.log("AXIOS POST RESPONSE RECEIVED: ", res);
})
.catch((err) => {
console.log("AXIOS POST ERROR: ", err);
})
Вот мой код сервлета:
public class DatabaseConnectorServlet extends HttpServlet {
@Override
final protected void doPost(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException {
try {
System.out.println("DatabaseConnectorServlet Received a HTTP POST");
String var1= request.getParameter("var1");
String var2= request.getParameter("var2");
System.out.println(var1 + var2);
response.getWriter().print("I GOT YOUR MESSAGE");
} catch (Exception ex) {
response.getWriter().print(ex);
}
}
Я поставил точки останова в коде Java выше и вижу, что он получает удар, и я вижу, что он выполняет все команды, включая response.getWriter (). Print, без проблем. Однако, когда я смотрю в окно консоли инструментов разработчика браузеров, я вижу исключение CORS.