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:53. |