Междоменный запрос без 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. свой собственный сервер. Вы делаете запрос своего собственного сервера, чтобы получить некоторый контент с другого сервера. Ваш сервер получает данные с другого сервера и возвращает его в браузере.

  2. прокси-сервер. Есть некоторые предварительно настроенные прокси-серверы, которые построены только для выполнения того, что описано в опции #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 для справки:способы обойти ту же политику происхождения

надеюсь, это поможет вашим или другим, кто находится в той же ситуации.