XMLHTTPRequest.status возвращается 0, и responseText является пробелом в FireFox 3.5

Я пытаюсь поразить сторонний URL, чтобы получить ответ XML и показать reposne в мою веб-страницу. Я получаю надлежащий ответ с состоянием как 200 и readystate как 4 в браузерах Safari и IE. Но В FF3.5 и Crome я получаю состояние XMLHTTPRequest как 0, и reponseText стал пустой строкой. Я попробовал много опций, пишущих нормальный код Ajax XMLHTTPRequest, а также использующих Прототип 1,5 версии js файл для этого запроса ajax, но тем не менее состояние и reponseText в FF 3.5 остаются тем же как 0 и пустая строка.

Любая справка, как решить этот вопрос или что точно вызывает эту проблему, значительно ценилась бы. Я также попытался выполнить свой код локально, а также развертывающийся к веб-серверу все еще, ответ в FF - то же.

Ниже мой фрагмент кода

<script type="text/javascript" src="prototype_ajax.js"></script>

<script type="text/javascript" language="javascript">

new Ajax.Request("I place my URL Here", {
    method: 'get',
    onSuccess : function(transport){

       var resultDoc = transport.responseText;
       var rootObj = loadXML(resultDoc);

    },
    onFailure : function(transport){
       alert(' On Failure '+transport)

    }
});

function loadXML(xmlFile) {
   var xmlDocElement =null;
   var xmlDoc = null;

   if (window.ActiveXObject) {
     try {
        // code for IE
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async=false;
        xmlDoc.loadXML(xmlFile);
     } catch (e) {
        alert("inside catch::"+e.message);
     }
   } else {
     // code for Mozilla, Firefox, Opera, etc.
     parser=new DOMParser();
     xmlDoc=parser.parseFromString(xmlFile,"text/xml");

     //xmlDocElement=xmlDoc.documentElement;
   }

   //alert('loadXML value  '+xmlDoc)
   return xmlDoc;
}

</script>
8
задан Daniel Vassallo 30 December 2009 в 16:53
поделиться

1 ответ

Похоже, вы столкнулись с той же политикой происхождения . Вы должны использовать относительный путь, иначе большинство браузеров просто вернут пустой responseText.

Следующий пост о переполнении стека, вероятно, также связан с вашей проблемой:

В качестве одного из возможных обходных путей, вы можете установить очень простой обратный прокси (с помощью mod_proxy, если вы используете Apache). Это позволит вам использовать относительные пути в вашем AJAX-запросе, в то время как HTTP-сервер будет действовать как прокси к любому "удаленному" местоположению.

Основной конфигурационной директивой для установки обратного прокси в mod_proxy является ProxyPass. Обычно вы используете её следующим образом:

ProxyPass     /web-services/     http://third-party.com/web-services/

В этом случае браузер будет запрашивать /web-сервисы/service.xml, но сервер будет обслуживать это, действуя в качестве прокси на http://third-party.com/web-services/service.xml.

16
ответ дан 5 December 2019 в 10:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: