Междоменный запрос без CORS или JSONP
Я знаю, что этот вопрос задавался раньше, но ни один из ответов не работал для меня! Я делаю школьный проект, и я хотел бы получить HTML (для анализа его для моего проекта), возвращаемый файлами динамического расписания на моем школьном сервере.
страница, которую я хотел бы HTML:https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched
Я думаю, что CORS не включен для файлов школьного сервера, и я не знаю, поддерживает ли он JSONP в...
как настроить междоменный запрос для получения HTML с этой страницы?
Я пробовал:
$.ajax({
type:'POST',
url: 'https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched',
headers: {
'Access-Control-Allow-Origin': '*'
},
contentType: 'text/html',
crossDomain:true
}).done(function( data ) {
});
и я получаю ошибку:
XMLHttpRequest не удается загрузить https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched. Нет Заголовок "Access-Control-Allow-Origin" присутствует на запрошенном ресурс. Таким образом, Origin 'null' не имеет доступа. Ответ имел код состояния HTTP 501.
когда я добавляю:
dataType:'jsonp'
Я получаю ошибку:
вам https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched?callback=jQuery21108736664191819727_1416964243449&_=1416964243450 400 (плохой запрос) jquery.минута.ДШ:4send на jQuery.минута.js: 4n.расширить.Аякс на jQuery.минута.js: 4 (анонимная функция)
любая помощь очень ценится!
2 ответов
- браузеры исполнение "same-origin" управление доступом, если сайт явно не разрешает запросы перекрестного происхождения (через CORS или JSONP). Таким образом, если сайт, к которому вы пытаетесь получить доступ, не разрешает запросы cross origin, вы не можете получить данные непосредственно с сайта с помощью браузера. Это просто не позволит (по законным причинам безопасности).
Это означает, что вам нужно будет использовать какой-то сторонний агент, который может получить данные для вас. Два самых общие способы сделать это:
свой собственный сервер. Вы делаете запрос своего собственного сервера, чтобы получить некоторый контент с другого сервера. Ваш сервер получает данные с другого сервера и возвращает его в браузере.
прокси-сервер. Есть некоторые предварительно настроенные прокси-серверы, которые построены только для выполнения того, что описано в опции #1. Для этого можно использовать прокси-службу или установить собственный прокси-сервер вы или настроить свой собственный веб-сервер, чтобы иметь эту возможность.
Я знаю, как это расстраивает, когда технические ограничения усложняют жизнь.
для такой ситуации, вы можете попробовать библиотеку JavaScript: Xdomain
Вы можете проверить справочную Статью для того же здесь:http://hayageek.com/cross-domain-ajax-jquery-without-cors/
Обсуждение YCombinator может помочь, если у вас есть вопросы:https://news.ycombinator.com/item?id=8023844
другой путь, используйте свой сервер, чтобы получить HTML-страницу, и нажмите на приложение по мере необходимости. Что-то вроде этого. Предположим, вы добавили один iframe как '.на PHP'. Код должен быть
<?php
$externalURL = "http://otherdomain.com";
$externalData = file_get_contents($externalURL);
echo externalData;
?>
пожалуйста, обратитесь к другому вопросу на SO для справки:способы обойти ту же политику происхождения
надеюсь, это поможет вашим или другим, кто находится в той же ситуации.