#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/">