jquery load - не работает с https
Здравствуйте.
Вывожу данные со страницы сайта https://site.ru/page.php на своем сайте https://mysite.ru с помощью:
<div id="new-nav"></div>
<script>
$("#new-nav").load("https://site.ru/page.php");
</script>
Контент не выводится. Если сайт-донор будет без ssl, то есть http вместо https, то контент выводится, то есть вариант:
<div id="new-nav"></div>
<script>
$("#new-nav").load("http://site2.ru/page.php");
</script>
рабочий. Как сделать, чтобы можно было вывести контент с сайта с ssl? |
Может https версия не отдаёт кросс оригин хедера?
|
Цитата:
No 'Access-Control-Allow-Origin' header is present on the requested resource Так как к сайту, с которого грузится информация, доступа у меня нет, и там в .htaccess я не могу прописать отправку соответствующего хэдэра, то таким способом ничего не получится у меня сделать. Наткнулся на jsonp, но я как понимаю, это для работы с api, а не для того, чтобы выудить кусочек сайта и вывести его в своем. Варианты серверные (file_get_contents) и curl мне не подходят, нужно именно с помощью ajax/load это как решить, т.е. именно c помощью js и библиотек. Iframe тоже не подойдет |
Пробовал, к примеру, такие варианты:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>ajax test</title>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<script>
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var xhr = new XHR();
xhr.open('GET', 'https://site-donor.ru', true);
xhr.onload = function() {
this.response;
}
xhr.onerror = function() {
alert( 'error ' + this.status );
};
xhr.send();
</script>
</body>
</html>
и
$.ajax({
type: 'GET',
headers: { 'Access-Control-Allow-Origin': 'https://site-donor.ru' },
url: 'https://site-donor.ru',
crossDomain: true,
dataType: 'text/html',
success: function(data) { alert("Success"); console.log(data);},
error: function(data) { alert("Error"); },
});
не работают, пишет No 'Access-Control-Allow-Origin' header is present on the requested resource в консоли |
mav1,
Заголовок 'Access-Control-Allow-Origin' должен сервер вам посылать, а не вы ему. Если доступа к серверу нет, то c помощью чисто js - никак. |
| Часовой пояс GMT +3, время: 08:28. |