междоменный вызов ajax с помощью Jquery 1.4.2 - PullRequest
0 голосов
/ 21 мая 2011

На самом деле, я не знаю, является ли это междоменной проблемой ajax.Вот моя проблема: у меня есть веб-сайт, работающий по протоколу ssl, например, URL-адрес веб-сайта: https://172.11.8.1:10443/index.php, Теперь я хотел бы получить некоторые данные XML из другого процесса http на том же сервере, скажем: http://172.11.8.1:8080/test.xml.

Я предполагаю, что я мог бы просто добавить файл js на HTML-страницу https://172.11.8.1:10443/index.php, основной вызов ajax выглядит следующим образом:

    $.ajax({
    type: "GET",
    url: "http://172.11.8.1:8080/test.xml",
    dataType:"xml",
    success: xmlParser,
    error: errHandler
});

   function xmlParser (xml, textStatus)
   {
     //
   }

   function errHandler(xhr, statusText, error)
   {
   if (xhr.status == "0" && statusText == "error")
   {
      alert("network down");
   }
   else if (xhr.status == "200" && statusText == "parseerror")
   {
          alert("error to get xml info");
   }
else
{
        alert("error to get xml info");
}
}

как яследуйте js-файлу, он всегда напрямую входит в функцию обработки ошибок.И информация об ошибке выглядит так:

    errorType  Error: a is null message=a is null
    statusText parsererror

Я считаю, что формат файла XML действителен, потому что я пробовал один и тот же вызов ajax в том же домене http, он работает.

Есть предложения?

1 Ответ

0 голосов
/ 21 мая 2011

В этом случае вы можете обойти междоменную проблему ... просто создайте страницу в (например) php, которая получает фид ....

getXml.php

<?php die(file_get_contents('http://172.11.8.1:8080/test.xml')); ?>

js

$.ajax({
    type: "GET",
    url: 'getXml.php',
    dataType:"xml",
    success: xmlParser,
    error: errHandler
});
...