尝试使用phonegap和zepto进行ajax调用

时间:2014-02-12 16:33:00

标签: ruby-on-rails ajax cordova

我是phonegap的新手,并尝试使用ajax构建一个从rails应用程序中提取数据的基本应用程序。以下是相关文件......

#www/index.html
    <body>
    <h1>Task List</h1>
    <div class="page current" id="tasks">
      <header>
        <h1>Open Tasks</h1>
      </header>
      <ul></ul>
    </div>
        <script type="text/javascript" src="phonegap.js"></script>
        <script type="text/javascript" src="js/zepto.min.js"></script>
        <script type="text/javascript" src="js/tasks.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript">
            app.initialize();
        </script>
    </body>
</html>

#www/js/tasks.js
function loadTasks() {
  var tasks = $('#tasks ul');

  $.ajax({
    type: 'GET',
    url: 'http://limitless-chamber-2009.herokuapp.com/tasks.json',
    dataType: 'JSON',
    timeout: 5000,
    success: function(data) {
      $.each(JSON.parse(data), function(i,item){
        tasks.append('<li>'+item.name+'</li>')
      });
    },
    error: function(data) {
      tasks.append('<li>There was an error loading the tasks');
    }
  });
}

loadTasks();

当我在网络浏览器中加载index.html时,出现错误“加载任务时出错”。我知道有很复杂的方法来调试这个,但我是一个js和ajax noob,所以不知道要检查什么,但我愿意接受建议。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

要在Cordova / PhoneGap应用中使用此功能,请尝试设置白名单。

./www/config.xml中,将白名单设置为:

<access origin="limitless-chamber-2009.herokuapp.com" />

甚至

<access origin="*" />

要在您的网络浏览器中运行此功能,您需要在启用了网络安全功能的情况下启动Chrome:https://stackoverflow.com/a/6083677/878602