У меня есть этот код:
клиент (angular2), размещенного на этом URL:
http://localhost:8080/Me/html/pages/gasolina/country/USA
код:
return this.http
.post(this.supporToolSaveUrl, gasConfigModel, {headers: headers})
.map(res => res.json())
.subscribe(
data => {
console.info("next: ");
console.info(data)
},
err => console.error(err)
);
сервер (джерси Java)
, размещенного на этом URL:
http://localhost:8080/Me/services/countries
код:
@Path("/SaveConfig")
@POST
@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
public void saveConfig(CountryGasStationConfig countryGasStationConfig) throws Exception {
я должен добавить их в Jersy аннотацию?
Когда я запустить его локально я получаю эту ошибку:
MLHttpRequest cannot load http://locahost:8080/.... Response for preflight is invalid (redirect)
Я видел это post и этот пост
Как я могу сделать это решение в angular2?
приложение.
config(['$httpProvider', function ($httpProvider) {
//Reset headers to avoid OPTIONS request (aka preflight)
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
}]);
Почему бы вам просто не правильно обращаться с CORS на сервере, если вы управляете сервером, а не пытаетесь прибегнуть к какой-либо взломанной стороне клиента. –
Я не хочу разрешать CROS для всех сайтов, как бы вы предложили решить эту проблему на стороне сервера? Клиент и сервер используют один и тот же домен, поэтому он должен был не выбросить ошибку CROS в любом случае –