Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery load - не работает с https (https://javascript.ru/forum/jquery/74263-jquery-load-ne-rabotaet-s-https.html)

mav1 25.06.2018 17:45

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?

Aetae 26.06.2018 00:04

Может https версия не отдаёт кросс оригин хедера?

mav1 26.06.2018 14:54

Цитата:

Сообщение от Aetae (Сообщение 488361)
Может 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 тоже не подойдет

mav1 26.06.2018 14:57

Пробовал, к примеру, такие варианты:

<!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 в консоли

destus 26.06.2018 15:09

mav1,
Заголовок 'Access-Control-Allow-Origin' должен сервер вам посылать, а не вы ему. Если доступа к серверу нет, то c помощью чисто js - никак.


Часовой пояс GMT +3, время: 08:53.