2

我是钛加速器家族的新手。另外我不确定之前是否有人发布过同样的问题。没找到所以贴在这里。

我正在开发一个移动应用程序。在我的应用程序中,我试图调用一个托管在本地环境中的 Web 服务,但它总是返回状态码为 0 的响应和错误消息“无法访问主机”。所以我认为我部署在远程位置的 Web 服务应该有问题。因此,我尝试调用其他一些网络服务,如 twitter,但它是相同的.. :( 在调用 twitter 网络服务时它也给了我一个错误。

我还检查了跨域策略问题。因此,我也尝试在服务器上为 Web 服务设置规则,但没有成功。以下是我正在使用的代码片段和环境详细信息。

  1. 应用类型:手机
  2. 钛 SDK: 2.1.4 GA
  3. 设备:网络浏览器
  4. 主机操作系统: Windows 7
  5. 钛工作室:钛工作室,构建:2.1.2.201208301612

我正在调用的示例 Web 服务的文件位于以下位置:

  1. http://db.tt/XoSCujux (api.php)
  2. http://db.tt/bJG2A5XT (Rest.inc.php)
  3. 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();

任何帮助将非常感激。

4

0 回答 0