состояние готовности jquery.ajax 0, статус 0

#jquery #ajax

#jquery #ajax

Вопрос:

Я вызываю веб-службу .net xml. веб-метод, который я вызываю, — «validatePassword», я не уверен, что я здесь делаю не так. Я все еще новичок в jquery и ajax.

  var name = $("#name",$("#loginPage")).val();
    var password = $("#password",$("#loginPage")).val();
    var ServiceUrl = "http://localhost:52146/SmartMeterMobile_WebService/User.asmx";    
     var soapEnv ="<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
                        <soapenv:Body> 
                         <validatePassword xmlns='http://tempuri.org/'>
                <UserName>" name "</UserName>
                <Password>" password "</Password>
            </validatePassword>
            </soapenv:Body> 
                </soapenv:Envelope>";

            $.ajax({
                url: ServiceUrl,
                type: "POST",
                dataType: "xml",
                data: soapEnv,
                complete: processResult,
                contentType: "text/xml; charset="utf-8""
            });


function processResult(xData, status) {

            $(xData.responseXML).find("NewDataSet").each(function() {
               alert($(this).find("intUserIdUS"))
            });
        }
  

xml-ответ.

 <?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://tempuri.org/">
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="tblData">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="intUserIdUS" type="xs:int" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <NewDataSet xmlns="">
      <tblData diffgr:id="tblData1" msdata:rowOrder="0">
        <intUserIdUS>1</intUserIdUS>
      </tblData>
    </NewDataSet>
  </diffgr:diffgram>
</DataSet>
  

Комментарии:

1. Что происходит не так? Вы видите предупреждение? Если вы делаете, что это говорит? Дайте нам еще немного информации, которая поможет дать точный ответ!

2. Нет, я не вижу никакого предупреждения. я использовал firebug, чтобы проверить, прошел ли http-запрос, но он выдает мне недопустимый метод 405

3. Что ж, это указывает на то, что ваш запрос не в порядке, поэтому вам следует начать поиск там. Вероятно, еще нет действительного ответа от сервера, поэтому код, обрабатывающий ответ, на данный момент не имеет значения.

Ответ №1:

Ваши XML-атрибуты заключены в одинарные кавычки вместо двойных.

неверно

 <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
  

верно

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">