作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上,我有一个位于服务器上的 php 脚本,它生成一个 JSON 文件,其中列出了 mysql 数据库中的位置。我正在使用 jQuery Mobile 开发一个应用程序来显示这些地方。我的代码在 Chrome 和 Safari 中工作,但是当我将其移植到 Phonegap 时,它不起作用。我在互联网上进行了搜索,但找不到答案:(。
用于生成 JSON 的 php 文件(json.php):
<?php
header('Content-type: application/json');
$server = "localhost";
$username = "xxx";
$password = "xxx";
$database = "xxx";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$sql = "SELECT * FROM places ORDER BY name ASC";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
while($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
mysql_close($con);
echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
?>
我的 Javascript 文件位于我的应用程序中(加载 JSON 并显示它):
$('#places').bind('pageinit', function(event) {
getPlaces();
});
function getPlaces() {
var output = $('#placeList');
$.ajax({
url: 'http://www.mysite.com/json.php',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
$.each(data, function(i,item){
var place = '<li><a href="">'+item.name+'<span class="ui-li-count">'
+ item.checkins+'</span></a></li>';
output.append(place);
});
$('#placeList').listview('refresh');
},
error: function(){
output.text('There was an error loading the data.');
}
});
}
HTML 看起来像这样:
<div data-role="content">
<h3>Places</h3>
<ul data-role="listview" id="placeList" data-inset="true">
</ul>
</div><!-- /content -->
此代码可以在 Chrome 和 Safari 中运行,但是当使用 Phonegap 在 xCode 模拟器中运行时,它不会加载 JSON。
任何帮助将不胜感激:)
最佳答案
这可能与白名单有关,Apple 不信任任何类型的不可控数据(例如 iframe 或 feed)。因此他们拒绝所有外部连接。
查看项目根文件夹 (xcode) 中的phonegap.plist,并将您的网站网址添加到数组“ExternalHosts”中。之后这可能会正常工作。
关于php - 在 Phonegap 中加载 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882939/
我是一名优秀的程序员,十分优秀!