Я пытаюсь сделать ajax междоменный пост-вызов API-интерфейсам веб-служб весеннего отдыха в безопасном контексте. Начиная с Jquery я не могу установить атрибут contentType, потому что у меня проблемы с безопасным контекстом. Но без contentType от Spring я получаю следующий ответ: 415 (неподдерживаемый тип носителя)
Контроллер Spring:
@RequestMapping(value = "/all", method = RequestMethod.POST)
@PreAuthorize("hasAnyAuthority('PROF1','SUDO')")
Jquery:
function getAllUsers(){
var obj = {"limit":10,"page":0};
$.ajax({
url:"https://webServerSite/myService/api/v1/user/all",
dataType: 'json',
xhrFields: {
withCredentials: true
},
crossDomain: true,
data:obj,
type: "post",
success:function(json){
var str = JSON.stringify(json);
console.log(str);
},
error:function(xhr, status, error) {
alert(xhr.responseText);
}
});
}
Там такое отключить в Spring проверку contentType? Все мои данные json, и я sh установлю это по умолчанию, избегая проверки заголовка типа содержимого. Я попытался определить пользовательский конвертер сообщений и с помощью следующего кода не работал:
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
//set path extension to true
configurer.favorPathExtension(true).
//set favor parameter to false
favorParameter(false).
//ignore the accept headers
ignoreAcceptHeader(true).
//dont use Java Activation Framework since we are manually specifying the mediatypes required below
useJaf(false).
defaultContentType(MediaType.APPLICATION_JSON).
mediaType("xml", MediaType.APPLICATION_XML).
mediaType("json", MediaType.APPLICATION_JSON);
}
Спасибо