javascript - Android 上的本地 Ajax 请求/Sencha/PhoneGap

标签 javascript android cordova extjs

我正在尝试通过本地 Ajax 请求加载 PhoneGap 应用程序中的一些内容。它似乎在 iPhone 上工作正常,但 Android 找不到该文件。

事情是这样的:

Ext.Ajax.request({
        url: 'file:///android_asset/webapp/content/file.html',
        success: function(response, opts) {
            console.log('response ' + response.responseText);
        }
        failure: function(response, opts) {
            console.log('response ' + response.responseText);
        }
    });

我已经调整了Manifest并设置了Internet权限,仍然没有成功。

你有什么想法吗?

最佳答案

在这种情况下我做的第一件事就是摆脱对 Sencha 或 jQuery 等第三方库的依赖,直接使用 XHR。存在一个问题,即从文件协议(protocol)发出请求有时会返回 0 状态,而实际状态为 200。大多数库都已修复此问题,但您永远不知道。试试这个 XHR 代码,它应该在 Android 上运行得很好:

var request = new XMLHttpRequest();
    request.open("GET", "file:///android_asset/webapp/content/file.html", true);
    request.onreadystatechange = function(){
        if (request.readyState == 4) {
            if (request.status == 200 || request.status == 0) {
                console.log("response " + request.responseText);
            }
        }
    }
    request.send();

关于javascript - Android 上的本地 Ajax 请求/Sencha/PhoneGap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813013/

相关文章:

javascript - 需要js和加载脚本时间

javascript - 在页面之间传递值。我究竟做错了什么?

javascript - 等待 Cypress 中的响应主体发生变化

javascript - 禁用和启用选中复选框的按钮

android - 如何在锁定屏幕和通知栏中显示带小时的闹钟图标

android - AsyncTask onPreExecute 未被调用

ios - Phonegap + 数据库存储

Android webview - 无法将文本插入 <input> 字段

android - 使用 getCacheDir() 缓存文件

android - 为什么 Cordova/Phonegap 将 8 附加到我的 Android 版本代码?