Сбой jQuery ajax-метода для POST с сообщением об ошибке «Доступ к XMLHttpRequest из источника« null »заблокирован политикой CORS» - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь выполнить вызов 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.

Может кто-нибудь здесь предложитьчто мне здесь не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...