Первый запрос Ajax получает ответ, но не второй, который включает заголовок. Как разрешить включение заголовков в кросс-доменный запрос Ajax.Разрешить заголовки в кросс-доменном ajax-запросе
Примечание. Я ожидаю, что мне нужно будет сменить сервер, и https://stackoverflow.com/a/32140436/1032531 также так говорит, но не говорит, как внести эти изменения. Кроме того, я не ищу решение только для jQuery.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Testing</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$.ajax({
type:'POST',
url:'http://otherdomain.example.com/ajax.php',
})
$.ajax({
type:'POST',
url:'http://otherdomain.example.com/ajax.php',
headers: {"X-Test-Header": "test-value"},
})
});
</script>
</head>
<body></body>
</html>
ответ FF на второй запрос Ajax:
Cross-Origin Request Заблокировано: The Same Origin Policy запрещает чтение удаленный ресурс в http://otherdomain.example.com/ajax.php. (Причина: отсутствующий токен «x-test-header» в заголовке CORS «Access-Control-Allow-Headers» из канала предпросмотра CORS).
Chrome отвечает на второй как:
XMLHttpRequest не может загрузить http://otherdomain.example.com/ajax.php. Поле заголовка запроса X-Test-Header не допускается Контрольные заголовки Access-Control-Allow-Headers в предполетном ответе. Apache настроен в
следующим образом:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization, Client-Security-Token, Accept-Encoding"
Спасибо, но, как видно из моего первоначального сообщения, я уже делал это. Это заголовок, который не проходит. – user1032531