2012-02-16 54 views
0

我正在尝试为PhoneGap设置JSON查询,该查询将通过Expression Engine template创建的JSONP拉入。如果我直接导​​航到我的JSON页面http://www.lcbcchurch.com/mobileJSON/homeslideshow,我会得到正确的输出。试图将它拉入我的iPhone应用程序(phonegap)是另一回事。这就是说它在控制台中找不到(404)。我检查了我所有的链接,我想我正确地执行回调方法,但似乎没有任何工作。请帮忙。下面是我对EE插件代码:将JSON拉入phonegap结果在404

{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> 

回答

1

你确信你是白人列出您xcode项目所有外部主机?你的ajax调用看起来有点偏离......你有一个目录和一个参数添加回调..如果你删除,只是让成功函数调用它将工作。

带手机你不需要担心crossdomain,你需要做的就是将你的xcode项目中的所有域列入白名单,方法是在你的phonegap.plist文件中向externalHosts添加一个新值 - 将关键字设置为'网站'和'*'的价值,这是一个全部。

$.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. 
    } 
} 
+0

打印对象,你可以简单地运行一个循环。我已经更新了我的答案。 – 2012-02-16 18:49:00

+0

我认为这工作。现在,将结果打印到标记中的最佳方法是什么? – nate8684 2012-02-16 18:56:11

+0

对不起,刚刚看到你的循环响应。让我试试看! – nate8684 2012-02-16 18:56:54