Cors блокирует ajax-запрос, несмотря на Access-Control-Allow-Origin: * - PullRequest
0 голосов
/ 15 мая 2019

У меня есть веб-приложение (написанное на php / codeigniter с некоторыми jquery), и я пытаюсь получить данные из веб-службы AspNet через запрос Ajax.

Код JQuery, который обрабатывает запрос, выглядит следующим образом:

    $.ajax({
            url: webServiceURL,
            type: "POST",
            dataType: "xml", 
            data: soapMessage,
            contentType: "text/xml; charset=\"utf-8\"",
            success: (response)=>{
                    //process response
                });
            }, 
            error: (error)=>{
                console.log(error);
            }
        });
}

Проблема в том, что CORS заблокировал его.Я возиться с этим немного, и теперь я получаю эту ошибку (раньше я не отправлял правильный заголовок источника, теперь я отправляю *):

ОПЦИИ http://10.208.1.27/planws/Service.asmx 403 (Запрещено)

Доступ к XMLHttpRequest в 'http://10.208.1.27/planws/Service.asmx' от источника' http://localhost' заблокирован политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: Нет HTTP, нормальноstatus.

Я получаю эту ошибку, даже если я настраиваю IIS на сервере, чтобы он отвечал заголовком «Access-Control-Allow-Origin: *».Что еще я должен сделать, чтобы заставить его работать?

заголовки ответа выглядят так в инструментах / сети разработчика Chrome:

Access-Control-Allow-Origin: *

Когда я запускаю Chrome с отключенной веб-безопасностью, он работает просто отлично.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Советую переключить ответ веб-службы с xml на json и использовать Jsonp.

$.ajax({
    url: webServiceURL,
    data: myData,
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    success: function() { alert("Success"); },
    error: function() { alert('Failed!'); },
    headers: {
              'Access-Control-Allow-Origin': '*'
          },
});
0 голосов
/ 15 мая 2019

Вы можете использовать стороннее расширение для Chrome, если вы получаете эту ошибку только для локальной установки.

Allow-Control-Allow-Origin расширение.

Это неправильный способ, но выможно использовать.

...