Jquery mobile getJSON 适用于浏览器但不适用于移动设备

Posted

技术标签:

【中文标题】Jquery mobile getJSON 适用于浏览器但不适用于移动设备【英文标题】:Jquery mobile getJSON works in browser but not in mobile device 【发布时间】:2015-10-31 10:56:30 【问题描述】:

我在 Jquery mobile 1.4.5 上有一个项目,我从本地 JSON 数据加载数据并将它们解析为列表。当我在 Firefox 中对其进行测试时,它工作正常,列表已填充,一切正常,但是当我在cordova 和 android 中编译它时,在移动设备上未填充来自 json 的列表。我将 data.json 文件保存在 www 项目文件的根文件夹中。可能是什么问题?

    $.getJSON('data.json', function(data) 
    var output="<ul>";
    for (var i in data.sometext) 
        output+="<li " + 
        "blah blah blah"
        "</li>" ;
    
    output+="</ul>";
    document.getElementById("placeholder").innerhtml=output;
    );

在我的科尔多瓦配置文件中:

 <content src="index.html" />
<plugin name="cordova-plugin-whitelist" version="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<preference name="orientation" value="portrait" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>

【问题讨论】:

尝试用获取 json 的 url 替换 data.json 但是我想构建一个离线应用,我想将json数据保存在用户设备中。 phonegaptutorial.com/… 看看这个,可能会有帮助 ajax 失败时会出现什么错误? 在 Firefox 中没有错误,Json 文件加载正常,在 chrome 中我得到:XMLHttpRequest cannot load file:///C:/Users............/data.json .跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。在设备中我怎么能得到这些错误?在 Chrome 中,我对跨源错误并不感到惊讶,因为我认为使用 dordova 和 构建应用程序可以解决这个问题.... 【参考方案1】:

我知道这是旧的,这为我解决了:

如果您使用 Prepros 或其他 Web 开发工具,您可能忘记将 json 文件上传到 FTP。然后它可以在 localhost 上正常工作,但不能在 url 上工作。

【讨论】:

以上是关于Jquery mobile getJSON 适用于浏览器但不适用于移动设备的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Mobile 自定义选择菜单适用于 Mobile Safari,但不适用于 UIWebView

适用于桌面和移动设备的 jQuery Mobile

JQuery Mobile适用于浏览器,但不适用于手机

适用于 1.4.5v 的响应式网格 Listview jquery mobile

适用于 Android 的 JQuery Mobile + PhoneGap - 加载 index.html 时出错

jQuery Mobile-jquery Mobile 怎么用ajax提交表单