Ответ xmlHttpRequest - PullRequest
0 голосов
/ 13 мая 2009

У меня непонятная проблема, и мне нужна помощь Я написал некоторый код для инициализации xmlHttpRequest для отправки запроса И получите ответ, вот мой код:

function initRequest(url)
  {
    if(window.XMLHttpRequest){
       req=new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
     {
      isIE=true;
      req=new ActiveXObject("Microsoft.XMLHTTP");
     }
   }

function validateUser()
   {           
      var sPath = window.location.pathname;
      var sAddress = sPath.substring(0,sPath.lastIndexOf('/') + 1);
     var url=sAddress+"WebService2.asmx?op=HelloWorld";               
     initRequest(url);
     req.onreadystatechange=processRequest;
     req.open("GET",url,true);
     req.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
     req.send(null);      
  }

function processRequest()
  {
    if(req.readyState==4){
     if(req.status==200)
       {
        var message="invalid";
        alert(req.responseText);           
        //message=req.responseXML.getElementsByTagName("valid")[0].childNodes[0].nodeValue;
        //SetMessage(message);
       }
       else
       {
       alert(req.statusText);
       }
     }       
  }

Моя проблема: я не знаю, где и как получить правильный XML-ответ от URL, который я указал, я работал с Respose Object в методе HelloWorld моего WebService, но в результате была получена некоторая DOM-архитектура страницы для вызова метода ...

Каждый ключ будет оценен

Ответы [ 3 ]

2 голосов
/ 13 мая 2009

Есть 2 возможных ответа на этот вопрос ..

  1. Длительное и подробное обсуждение интерпретации кодов состояния и результатов анализа
  2. Предположение, что вы смотрите на использование установленной библиотеки, чтобы избавить вас от боли.

Я собираюсь воспользоваться вторым подходом и рекомендую, чтобы вы исследовали jquery , поскольку это делает всю работу осла для вас - и предоставляет множество других преимуществ. После этого вы можете разрабатывать свое приложение, а не часами возиться с проблемами, которые уже были решены другими.

P.S. Я признаю существование других библиотек javascript, sucah как «прототипа», но нашел jquery для удовлетворения всех моих потребностей, а также включен в инфраструктуру ASP.NET MVC, что делает его простым и легким.

1 голос
/ 13 мая 2009

Если вам нужен не DOM, а XML-ответ в виде строки, используйте responseText вместо responseXML.

Также рассмотрите возможность использования прототипа или jquery вместо того, чтобы писать это вручную.

Если ответ отличается от того, который вы ожидали, возможно, вы неправильно используете API этого сервера. Я бы рекомендовал прочитать документацию по нему или tcpdumping обмена данными.

Вы не указали, к какому серверу вы пытаетесь подключиться, поэтому мы не можем помочь вам с его API.

0 голосов
/ 13 мая 2009

Вот учебник по использованию XMLHttpRequest:

Учебник по Ajax

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

...