Я пытаюсь создать iframe с системой, которая использует HTTP-аутентификацию. Я использую этот код:
<iframe id="dashboard"></iframe>
<script type="text/javascript">
$.ajax(
{
url: \'https://mysystem.xxxx/\',
beforeSend: function(xhr) {
xhr.withCredentials = true;
xhr.setRequestHeader(
"Authorization", "Basic Z2Vxxxxxxxxxxx=="
);
},
success: function(data) {
$(\'#dashboard\').attr(\'src\', \'https://mysystem.xxxx\');
$(\'#dashboard\').contents().find(\'html\').html(data);
}
}
);
</script>
С этим кодом, когда страница загружается, она генерирует три запроса к системе:
- OPTIONS -> Проверяет параметры CORS; это нормально.
- GET -> Содержит заголовок аутентификации. Система возвращает 200 и отправляет данные.
- Other GET -> Без заголовка авторизации. Затем система возвращает «401». Это проблема.
Если я уберу эту строку:
$(\'#dashboard\').attr(\'src\', \'https://mysystem.xxxx\');
Страница загружается, но статическое содержимое iframe (images, css, js) возвращает 404.