将JSON拉入phonegap会导致404

时间:2012-02-16 18:31:12

标签: ios json cordova expressionengine

我正在尝试为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>

1 个答案:

答案 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.
  }
}