Я пытаюсь выполнить вызов POST, используя метод jQuery $ .ajax, одновременно определяя заголовок и dataType.Я пытался сделать то же самое в Почтальоне, где все работало нормально.Итак, я скопировал приведенный ниже код из инструмента Postman «Generate Code Snippet» и попытался включить его в мой вызов метода.
var settings = {
"async": true,
"crossDomain": true,
"url": "https://link.to.resource/resources/controller/genjpcode",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"cache-control": "no-cache"
},
"processData": false,
"data": "{ \"code\":\"manna\"}"
}
$.ajax(settings).done(function (response) {
console.log(response);
});
, но вызов приводит к следующей ошибке:
Access to XMLHttpRequest at 'https://link.to.resource/resources/controller/genjpcode' from origin 'null' has been blocked by CORS policy: Request header field cache-control is not allowed by Access-Control-Allow-Headers in preflight response.
Ниже приведен фрагмент кода, который я использую на стороне сервера для предотвращения ошибки CORS в java
@Override
public void filter(ContainerRequestContext containerRequestContext,
ContainerResponseContext containerResponseContext) throws IOException {
/* Enabling CORS filters */
MultivaluedMap<String, Object> headers = containerResponseContext.getHeaders();
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
}
, и это прекрасно работает для вызовов GET.
Может кто-нибудь здесь предложитьчто мне здесь не хватает?