Очистить информацию от внешнего XML-URL с помощью jQuery - PullRequest
0 голосов
/ 11 мая 2018

Мне нужно почистить / проанализировать некоторую информацию из внешнего XML-файла (xml, размещенного в другом домене) и разместить эту информацию на моем сайте.

Я пробовал это, но безуспешно:

jQuery(document).ready(function()
{
  jQuery.ajax({
    type: 'GET',
    url: 'http://42netmedia.com/smart/signal_onAir10.xml',
    crossDomain: true,
    dataType: 'jsonp',
    success: parseXml
  });
});

function parseXml(xml)
{
  jQuery(xml).find('nowOnAirTitle').each(function()
  {
   jQuery(".my-site-element").append(jQuery(this).find('nowOnAirTitle').text());
  });
}

Надеюсь, мне удалось правильно объяснить.

PS.Я использую jQuery, потому что мой сайт размещен на WordPress

1 Ответ

0 голосов
/ 11 мая 2018

Короткий ответ: вы не можете делать то, что пытаетесь сделать, с помощью Javascript, запущенного в браузере.

Политика одинакового происхождения будет блокировать запросы AJAX для URL-адресов в разных доменах.,Существует несколько исключений из этой политики:

  1. Если целевой сервер поддерживает CORS , это может указывать на то, что запросы между источниками в порядке.URL-адрес, который вы пытаетесь получить, находится на сервере, который не поддерживает CORS.

  2. Если целевой сервер поддерживает JSONP, ваш сценарий может получать данные с целевого сервера с помощью <script> тег на вашей странице с атрибутом src, указывающим на целевой URL и включающим параметр обратного вызова, чтобы сообщить серверу обернуть данные в функцию javascript, которая возвращает данные.URL-адрес, который вы пытаетесь найти, находится на сервере, который не поддерживает JSONP.

Да, jQuery позволяет отправлять запрос JSONP в другой домен, но ответне Javascript, а XML.Ваш браузер пытается выполнить XML, как если бы это был Javascript, и завершается неудачно с синтаксической ошибкой.

Любое решение для этого потребует поддержки на стороне сервера на сервере, на котором размещен ваш код.Вы можете настроить прокси-URL на своем веб-сервере, но вам нужно сделать это очень осторожно, потому что вы не хотите, чтобы ваш сервер использовался в качестве открытого прокси.Вы также можете использовать задание cron, чтобы захватить URL с помощью curl и сохранить его в статическом файле на вашем сервере, но это, вероятно, немного грубо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...