我是钛加速器家族的新手。另外我不确定之前是否有人发布过同样的问题。没找到所以贴在这里。
我正在开发一个移动应用程序。在我的应用程序中,我试图调用一个托管在本地环境中的 Web 服务,但它总是返回状态码为 0 的响应和错误消息“无法访问主机”。所以我认为我部署在远程位置的 Web 服务应该有问题。因此,我尝试调用其他一些网络服务,如 twitter,但它是相同的.. :( 在调用 twitter 网络服务时它也给了我一个错误。
我还检查了跨域策略问题。因此,我也尝试在服务器上为 Web 服务设置规则,但没有成功。以下是我正在使用的代码片段和环境详细信息。
- 应用类型:手机
- 钛 SDK: 2.1.4 GA
- 设备:网络浏览器
- 主机操作系统: Windows 7
- 钛工作室:钛工作室,构建:2.1.2.201208301612
我正在调用的示例 Web 服务的文件位于以下位置:
- http://db.tt/XoSCujux (api.php)
- http://db.tt/bJG2A5XT (Rest.inc.php)
- http://db.tt/Hxt6Oojx (.htaccess)
代码:
//declare the http client object
var xhr = Titanium.Network.createHTTPClient();
//this method will process the remote data
xhr.onload = function() {
//check to see if we are refreshing the data via our
//pull and release mechanism
//create a json object using the JSON.PARSE function
result = JSON.parse(this.responseText);
Ti.API.info(result);
console.log(result);
var msgTitle = "data:";
var msgText = result;
var alertBox = Ti.UI.createAlertDialog({
title: msgTitle,
message: msgText
});
alertBox.show();
};
//this method will fire if there's an error in accessing the remote data
xhr.onerror = function(e) {
//log the error to our titanium developer console
Ti.API.error(this.status + ' - ' + this.statusText);
console.log(this.status + ' - ' + this.statusText);
var msgTitle = "Error : " + this.status;
var msgText = "Error Text : " + this.statusText;
var alertBox = Ti.UI.createAlertDialog({
title: msgTitle,
message: msgText
});
alertBox.show();
Ti.API.debug("STATUS: " + this.status);
Ti.API.debug("TEXT: " + this.responseText);
Ti.API.debug("ERROR: " + e.error);
alert('There was an error retrieving the remote data. Try again.' + e.error);
};
//open up the recipes xml feed
xhr.open("POST", "http://127.0.0.1/rest_example/api.php?rquest=locations");
//finally, execute the call to the remote feed
xhr.send();
任何帮助将非常感激。