Включение CORS в веб-сервисе Java

eval echo \"\$$bar\" сделает это.

0
задан CD VA Programmer 21 January 2019 в 13:16
поделиться

1 ответ

РЕШЕНИЕ В приложении веб-службы Java вам необходимо добавить несколько заголовков, чтобы разрешить CORS в объекте Response. Вот обновленный код Java, обратите внимание на дополнительную строку кода response.addHeader:

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");
            response.addHeader("Access-Control-Allow-Origin", "http://localhost:3000"); //Here's the extra line needed to allow CORS to your server side code

            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.addHeader("Access-Control-Allow-Origin", "http://localhost:3000");
            response.getWriter().print(ex);
        }
    }

С этим обновленным кодом я теперь могу видеть образец текста «Я получил ваше сообщение» в окне консоли инструмента разработчика веб-браузера. где работает код React.

Это в основном позволяет http-запросу из другого домена / порта (т.е. в данном случае приложения REACT) получить доступ к данным из этого веб-сервиса Java.

Также, чтобы вы знали, есть некоторые другие дополнительные заголовки, которые вы можете включить (которые я видел по другим вопросам), которые мне не нужны в моей ситуации, но могут быть полезны в вашей. Вот дополнительные заголовки и некоторые примеры значений:

 response.addHeader("Access-Control-Allow-Origin", "http://localhost:3000");
        response.addHeader("Access-Control-Allow-Headers", "Origin, Content-Type, Accept, X-Auth-Token");
        response.addHeader("Access-Control-Allow-Credentials", "true");
        response.addHeader("Access-Control-Request-Headers", "Origin, X-Custom-Header, X-Requested-With, Authorization, Content-Type, Accept");
        response.addHeader("Access-Control-Expose-Headers", "Content-Length, X-Kuma-Revision");
        response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS");
0
ответ дан CD VA Programmer 21 January 2019 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: