Настройте CORS в системе клиент-сервер с помощью Spring Boot, Apache и Tomcat

Чтобы установить дату для подготовленного оператора, вам нужно изменить тип значения:

String date = request.getParameter("date");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); // your template here
java.util.Date dateStr = formatter.parse(date);
java.sql.Date dateDB = new java.sql.Date(dateStr.getTime());

теперь преобразовать дату String в java.sql.Date и использовать другой метод:

preparedStatement.setDate(4,dateDB);
0
задан Oemtri 18 January 2019 в 15:59
поделиться

1 ответ

Отправляете ли вы заголовок «с учетными данными» на стороне клиента? Если это угловое 7 приложение, вы должны разрешить заголовок with credentials на стороне сервера, добавить конфигурацию cors и добавить перехватчик на стороне клиента для каждого http-запроса клиента. Кроме того, вы не должны указывать "*" как разрешенные источники, иначе заголовок with credentials не будет работать.

На Angular создайте это:

@Injectable()
export class CredentialsInterceptor implements HttpInterceptor {
constructor() {}

intercept(request: HttpRequest<any>, next: HttpHandler): 
Observable<HttpEvent<any>> {

request = request = request.clone({
    withCredentials: true
});
return next.handle(request);
}
}

И добавьте в app.module:

providers: [{
provide: HTTP_INTERCEPTORS,
useClass: CredentialsInterceptor,
multi: true
}  

Еще одной проблемой может быть порядок фильтра cors, он должен быть до фильтр на filterChain. Вы можете справиться с этим примерно так:

@Bean
FilterRegistrationBean<CorsFilter> corsFilter(CorsConfigurationSource 
corsConfigurationSource)
{
CorsFilter corsFilter = new CorsFilter(corsConfigurationSource);

FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<> 
();
bean.setFilter(corsFilter);
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return bean;
}
0
ответ дан Raphael Alves 18 January 2019 в 15:59
поделиться
Другие вопросы по тегам:

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