在手机间隙iOS应用程序中,Ajax查询失败,状态为0

时间:2013-07-12 07:49:53

标签: jquery ios ajax cordova

我正在开发一个带有phonegap的ios应用程序,其中我使用foursquare api列出所有附近的场地。这是我用于列出场地的代码。

$.getJSON('https://api.foursquare.com/v2/venues/search?ll='+pos+'&radius=10000&client_id=2POUFAUU4ZBJ2MTDOY3S2YHR2NIT52FYW0LUTPHBMNTJFJNQ&client_secret=YFDZI1YWV3ZI5S5SPM2DZJEQIEBPIDJ5XFZBWTIKIQZVQNYM&v=20120101&limit=60',
          function(data) {

          console.log(pos);
          $.each(data.response.venues, function(i,venues){

                 content = '<li id="list-item"> <p><a href="#reviewPage" onClick=" return reviewPageAction(this)">' + venues.name + '</li>';

                 $(content).appendTo("#mer");

                 });
          });

您可以为我提供每个列表项的链接,这将添加一个评论页面,该页面将显示该场地的详细信息。我为每个列表项提供了一个onClick函数,它将使用对我的php文件的ajax调用从我的数据库中获取一些细节。

以下是onclick功能的代码

$.ajax({
               type: 'GET',

               url: 'http://127.0.0.1/myPHPFile.php',
               data: { id: venueId},
               success: function(response) {


                   alert(response);
               },
               error:function(xhr,status,error){

                alert("failure "+xhr.status);
                $("#result").html('there is error while submit');
                }
               });

出于测试目的,在myPHPFile.php中我只是回显一个字符串。

问题是我总是收到状态为0的错误。但它没有在模拟器中显示任何错误。在设备和桌面浏览器中显示错误!!请帮帮我。

3 个答案:

答案 0 :(得分:2)

您是否在config.xml中配置了访问权限?像:

<access origin="https://api.foursquare.com" />

或适用于所有域名:

<access origin="*" />

更多信息:http://docs.phonegap.com/en/2.4.0/guide_project-settings_index.md.html

答案 1 :(得分:1)

http://127.0.0.1/它是同一台机器,所以如果你在模拟器上尝试它,它就可以工作,因为你在那台机器上有PHP脚本。 如果您在设备上尝试,http://127.0.0.1/是设备,则设备没有PHP脚本。

您必须使用服务器的本地IP,类似于此,但将192.168.1.20更改为服务器的真实本地IP(您可以在Windows上使用ipconfig了解它,或ifconfig在mac / linux上)

$.ajax({
               type: 'GET',

               url: 'http://192.168.1.20/myPHPFile.php',
               data: { id: venueId},
               success: function(response) {


                   alert(response);
               },
               error:function(xhr,status,error){

                alert("failure "+xhr.status);
                $("#result").html('there is error while submit');
                }
               });

答案 2 :(得分:-1)

使用JSONP,以PHP格式返回数据:

echo $_GET['callback']. '('. json_encode($returnData). ');';

jQuery的:

$.getJSON('yourApiUrl',
 function(data) {
  console.log(data);
 });