4

我真的很讨厌问我觉得以前被问过一千次的问题。这是我觉得其他人一定遇到过的问题之一,但是 搜索了 stack overflow后,没有一个假定的解决方案对我有用,所以我一定做错了什么.....

我有一个非常简单的应用程序设置。index.htm 和 terms.htm。test.htm 中有一些文本数据。我在加载内容$.support.cors = true;$.mobile.allowCrossDomainPages = true;的适当时间进行了设置。

起初我尝试使用将terms.htm的数据加载到索引中的一个元素中$('#elementid').load('terms.htm');(测试和索引都在同一个根/assets/www/目录中,我的webview加载索引oncreate)但绝对没有发生任何事情。所以我选择尝试 .ajax,这样我至少可以收到一条错误消息,而我得到的只是“错误”。当然,可以在 DroidGap 上使用 JQ 加载本地文本资源吗?

$('#header').load('terms.htm');
$.ajax({
    type:"GET",
    timeout:10000,
    async: false,
    url: "terms.htm",
    success: function(data) {
        $('#header').html(data);
    },
    error: function(xhr,msg){
           alert( msg);
       }
});
4

4 回答 4

0

请参阅此链接。我有同样的问题,这解决了它。另外,我认为他们在 1.6.0 中修复了它,但我现在在 iOS 上看到与 PhoneGap 1.6.1 相同的问题。

于 2012-04-20T15:56:47.003 回答
0

我不是 100% 确定,但我认为这是 ICS 4.0.3 的问题。在 4.0.2 上,ajax 似乎工作得很好,但对我来说,在 4.0.3 上也没有 ajax。像你一样,我已经尝试了一切,但没有任何工作..

顺便说一句,我正在使用 PhoneGap。Ajax 在标准浏览器中运行良好,但在 PhoneGap 应用程序中却不行。

于 2012-04-20T03:18:09.107 回答
0

这只是一个长镜头,但您说“我在加载内容后的适当时间同时设置了 $.support.cors = true; 和 $.mobile.allowCrossDomainPages = true;。 ”。jQuery 移动文档说您必须在加载 JQM之前设置全局配置:

因为 mobileinit 事件会立即触发,所以您需要在加载 jQuery Mobile 之前绑定您的事件处理程序。按以下顺序链接到您的 JavaScript 文件:

<script src="jquery.js"></script>
<script src="custom-scripting.js"></script>
<script src="jquery-mobile.js"></script>

在您的情况下,这将是:

<script src="jquery.js"></script>
<script>
    $(document).bind("mobileinit", function(){
        $.support.cors = true;
        $.mobile.allowCrossDomainPages = true;
    });
</script>
<script src="jquery-mobile.js"></script>

就像我说的,只是一个猜测......

于 2012-04-21T20:55:03.830 回答
0

如果您在 Chrome 中运行您的应用程序 然后您需要禁用网络安全并启用加载本地文件请参阅使用 PhoneGap 和 jQuery 的跨域请求不起作用 如果Safari 或模拟器或网络服务器 它应该工作

于 2012-04-20T07:21:45.893 回答