我使用Titanium框架编写登录页面并使用Android模拟器。 我需要验证用户身份。我使用下面提到的代码,但我收到“错误”警告。
var loginWindow = Titanium.UI.createWindow({
backgroundColor: '#CCD0D3',
title: L('Login'),
fullscreen: false,
activity : {
onCreateOptionsMenu : function(e) {
var menu = e.menu;
var cancel = menu.add({ title : L('Cancel') });
cancel.addEventListener('click', function(e) {
var alertDialog = Titanium.UI.createAlertDialog({
title: 'Clicked',
message: 'Cancel was clicked',
buttonNames: ['OK']
});
alertDialog.show();
});
var login = menu.add({ title : L('Login') });
login.addEventListener('click',function(e)
{
alert("Click");
if (txtUsername.value != '' && txtPassword.value != '')
{
var loginReq = Titanium.Network.createHTTPClient();
loginReq.onreadystatechange = function(){
alert('onreadystatechange');
};
loginReq.onload = function()
{
alert("load");
var json = this.responseText;
var response = JSON.parse(json);
if (response.logged == true)
{
alert("Welcome " + response.name + ". Your email is: " + response.email);
}
else
{
alert(response.message);
}
};
loginReq.onerror = function(){
alert("Error");
};
loginReq.open("GET","http://localhost/iMessage/Authenticate.svc/CheckLogin/praveen/matoria");
// var params = {
// username: txtUsername.value,
// password: Ti.Utils.md5HexDigest(txtPassword.value)
// };
//loginReq.send(params);
loginReq.send(null);
}
else
{
alert("Username/Password are required");
}
});
}
},
exitOnClose:true
});
如果我使用浏览器并发送与响应后发送给我的相同请求:
{"email":"myEmail@gmail.com","logged":true,"name":"Praveen Matoria"}
仅供参考:作为参考,我使用以下link:
提前致谢。
答案 0 :(得分:2)
我找到了最终使用localhost for android的方法。 当我访问我的虚拟机时,它点击了我的大脑。
解决方案:每台计算机至少有3个IP地址:
使用此功能,您的请求将首先转到路由器而不是来回。
在某些事实上,我可能是错的,但总的想法是一样的。
答案 1 :(得分:1)
尝试更改
loginReq.onerror = function(){
alert("Error");
}
到
loginReq.onerror = function(e){
alert("Error: " + e.error);
}
至少应该为您提供有关您所犯错误的更多信息。