【发布时间】:2012-04-21 06:10:15
【问题描述】:
我正在开发 phonegap 应用程序。我需要通过 .net webservice 验证用户。我正在使用 ajax 来通过 javascript 验证和解析它。但我被困在 readystate,因为它总是返回 zero。我从网上找到的可用解决方案中尝试了很多东西,但我没有做对。
这是我的 Javascript:
username = 'ksl';
password = 'ksl';
var soapMessage =
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \
<soap:Body> \
<CheckLogin xmlns="http://tempuri.org/"> \
<UserName>' + username + '</UserName> \
<Password>' + password + '</Password> \
</CheckLogin> \
</soap:Body> \
</soap:Envelope>';
$.ajax({
url: validationURL,
type: "POST",
dataType: "xml",
data: soapMessage,
success: validate,
contentType: "text/xml; charset=\"utf-8\"",
error: function(xhr,status,error)
{
alert("state is:" + xhr.readyState);
}
});
return false;
这是我的网络服务响应:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CheckLoginResponse xmlns="http://tempuri.org/">
<CheckLoginResult>string</CheckLoginResult>
</CheckLoginResponse>
</soap:Body>
</soap:Envelope>
任何回复都会有帮助
【问题讨论】:
-
这是跨域请求吗?
-
对不起,我对 javascript 和 ajax 的无知......但我在这里使用 phonegap,其中 m 使用 javascript 和 ajax。 webservice来自.net..它是跨域的吗??
-
我没有使用 phonegap 的经验,但是在普通的网络浏览器中,您不允许向其他主机发送 ajax 请求 - 这是我想到的第一件事,因为您经常看到请求由于这个跨域策略,在就绪状态 0 中死亡。
-
好的..我知道了..不,它不是跨域的..
标签: javascript android ajax soap cordova