我正在尝试为PhoneGap设置JSON查询,该查询引入通过Expression Engine template创建的JSONP。如果我直接导航到我的JSON页面http://www.lcbcchurch.com/mobileJSON/homeslideshow,我会得到正确的输出。试图把它拉进我的iPhone应用程序(phonegap)是另一回事。它说它在控制台中找不到(404)。我检查了所有链接,我认为我正在正确地进行回调方法,但似乎没有任何效果。请帮忙。这是我的EE插件代码:
{exp:json:entries channel="slideshow" jsonp="yes" callback="{segment_3}" content_type="application/javascript"}
和应用代码:
<!DOCTYPE html>
<html>
<head>
<title>PhoneGap Ajax Sample</title>
<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$.ajax({
url: "http://www.lcbcchurch.com/mobileJSON/homeslideshow/results",
dataType: "jsonp",
jsonp: false
});
function results(data) {
console.log(data);
}
</script>
</head>
<body>
<div id="main">
</div>
</body>
</html>
答案 0 :(得分:1)
您是否确保在白名单中列出了xcode项目中的所有外部主机?你的ajax调用看起来有点像...你有一个像目录和参数一样的回调..如果你删除它,只是让成功函数调用它将起作用。
使用phonegap,您无需担心跨域,您需要做的就是通过在phonegap.plist文件中向externalHosts添加新值,将xcode项目中的所有域列入白名单 - 将密钥设置为“网站”和值为'*',这是一个全部捕获。
$.ajax({
url: "http://www.lcbcchurch.com/mobileJSON/homeslideshow",
dataType: "json",
success:function(data){
results(data);
}
});
function results(data) {
for(var i = 0; i<data.length;i++){
// this will log all of the images url
console.log(data[i].image); // just access the part you want by it's name.
}
}