我正在开发一个带有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的错误。但它没有在模拟器中显示任何错误。在设备和桌面浏览器中显示错误!!请帮帮我。
答案 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);
});