Я пытаюсь получить запрос AJAX, работающий между моим браузером и сервером Apache (находящимся в другом домене) с использованием CORS.CORS не работает на Chrome/Firefox и Apache
На стороне сервера, я сделал следующие изменения в разделе httpd.conf сервера в соответствии с ответами в «Header set Access-Control-Allow-Origin in .htaccess doesn't work»:
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Мой AJAX вызов формы:
$.ajax({
url :'https://x.x.x.x/validateCustomerID',
type : 'POST',
cache : false,
crossDomain: true,
contentType: 'application/json',
beforeSend: function(xhr){
xhr.setRequestHeader("Access-Control-Allow-Methods","POST");
xhr.setRequestHeader("Access-Control-Allow-Headers","X-Requested-With");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
},
data : {loginId : '12345'},
success : function(response){console.log("Success"+JSON.stringify(response))},
error : function(response){console.log("Error"+JSON.stringify(response))}
});
}
Я также попытался прокомментировать запрос перед отправкой(), чтобы избежать запроса предполетной проверки, но он также не был успешным.
Сообщения об ошибках, которые я получаю на Chrome и Firefox являются:
- В Chrome:
«XMLHttpRequest не может загрузить https://x.x.x.x/validateCustomerID 'Access-Control-Allow-Origin:' Нет заголовка присутствует. на запрошенном ресурсе. Поэтому исходный «null» не имеет права доступа. В ответе был код статуса HTTP 403. «
- В Firefox:
"Cross-Origin Request Заблокировано: The Same Origin Policy Запрещает чтение удаленного ресурса на https://x.x.x.x/validateCustomerID.. (Причина: запрос CORS не удалось)"
В моем браузере не найдено заголовков ответов, которые, как я думаю, являются обязательными для работы CORS, а также журналы на сервере не показывают запроса, получаемого от моего браузера.
Я был бы очень признателен, если бы кто-то здесь мог помочь мне решить эту проблему, поскольку я застрял здесь уже несколько дней и использовал почти все методы хитов и испытаний, чтобы заставить эту работу работать.
ли вы активировать заголовки модулей Apache 'a2enmod headers' ? –
Почему вы пытаетесь установить заголовки Access-Control в запросе ** **? – Quentin
@Jacob, я попытался активировать заголовки модуля apache, используя команду заголовков a2enmod, но это дало мне ошибку, что это была некорректная команда. Затем я читал, что Mod_headers включен по умолчанию в Apache, поэтому я оставил его как есть. Может быть, это проблема? –