Подключение бэкэнда Java (сервлеты) с фронтом Vercel (Fetch API). Ошибка CORSJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Подключение бэкэнда Java (сервлеты) с фронтом Vercel (Fetch API). Ошибка CORS

Сообщение Anonymous »

Итак, я поместил свой бэкэнд на веб -службу рендеринга (на Tomcat), а мой фронт (NextJS) находится на Vercel. Я разместил фильтр для политики CORS, чтобы перехватить все политики, а также запрос на обработку опций. В моей локальной настройке, когда я отправляю запросы из порта 3000 в порт 8080 (Tomcat), мои запросы действительно попадают в мой бэкэнд, но когда я развернут и пытаюсь отправлять запросы из Vercel на рендеринг, я продолжаю получать «ответ на запрос на предварительную работу, не прикреплял к допущению заголовок», я прикреплял его в свой фильтр и использую аннотации. Я попробовал с аннотациями и web.xml, но ни один из них не работает. Я записал Томкат в порт 10000 на рендеринге.

Код: Выделить всё

# ===== Stage 1: Build with Maven =====
FROM maven:3.8.5-openjdk-8 AS builder
WORKDIR /app

# Copy pom.xml and download dependencies first (better cache)
COPY pom.xml .
RUN mvn dependency:go-offline -B

# Copy source and build WAR
COPY src ./src
RUN mvn -B clean package -DskipTests

# ===== Stage 2: Tomcat runtime =====
FROM openjdk:8-jdk-alpine

# Install wget and unzip
RUN apk add --no-cache wget bash tar

# Set Tomcat environment
ENV TOMCAT_VER=9.0.80
ENV CATALINA_HOME=/usr/local/tomcat
ENV PATH=$CATALINA_HOME/bin:$PATH

# Download Tomcat from archive (since 9.0.80 is old)
RUN wget https://archive.apache.org/dist/tomcat/tomcat-9/v$TOMCAT_VER/bin/apache-tomcat-$TOMCAT_VER.tar.gz \
&& mkdir -p $CATALINA_HOME \
&& tar xzf apache-tomcat-$TOMCAT_VER.tar.gz -C $CATALINA_HOME --strip-components=1 \
&& rm apache-tomcat-$TOMCAT_VER.tar.gz

# Fix Tomcat port to use Render's PORT environment variable
RUN sed -i "s/port=\"8080\"/port=\"${PORT:-10000}\"/" $CATALINA_HOME/conf/server.xml

# Copy WAR from builder stage
COPY --from=builder /app/target/IssuesandDeploymentTracker-0.0.1-SNAPSHOT.war $CATALINA_HOME/webapps/ROOT.war

# Expose Tomcat port
#EXPOSE 8080

# Run Tomcat
CMD ["catalina.sh", "run"]

и это мой фильтр :
@WebFilter("/*")
public class CorsFilter implements Filter {

public CorsFilter() {
super();
System.out.println(">>> CorsFilter constructor loaded, class = " + this.getClass().getName());

}
public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {

HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest req = (HttpServletRequest) request;
System.out.println("CorsFilter hit for: " + req.getRequestURI());

response.setHeader("Access-Control-Allow-Origin","https://issues-deployment-tracker.vercel.app");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");

// Handle preflight immediately
if ("OPTIONS".equalsIgnoreCase(req.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
return;
}

// pass the request along the filter chain
chain.doFilter(request, response);
}

/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}

}
< /code>
Я использовал hibernate, postgres for prod, maven build.
** Это мой pom.xml для ссылки: **
yes URL -адреса, используемые на фронте, для отправки запросов также верны. Моя служба рендеринга идет вживую, но ничего не получает. Нет журналов, кроме здоровья. Я отправил Томкат в порт 10000 на рендеринге. Запросы даже не попадают в сервлеты забудьте забудьте. Использование аннотаций в настоящее время. Нет весны, просто просто сброс, JPA DAOS и Сервлеты.
Я не пробовал с прокси в следующем конфигура>

Подробнее здесь: https://stackoverflow.com/questions/797 ... cors-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»