Cordova Sencha Touch 2.3.1+Phonegap 3.4 jsonp不适用于Android,但适用于浏览器

Cordova Sencha Touch 2.3.1+Phonegap 3.4 jsonp不适用于Android,但适用于浏览器,cordova,sencha-touch,Cordova,Sencha Touch,以下代码在浏览器中工作,根据本文,我还将服务器设置为与CORS一起工作: 这是我的模型: Ext.define('App.model.Jobs', { extend: 'Ext.data.Model', config: { fields: ['category','type','contact','contactn','date', 'title', 'email', 'descr', 'link'] } });

以下代码在浏览器中工作,根据本文,我还将服务器设置为与CORS一起工作:

这是我的模型:

Ext.define('App.model.Jobs', {
        extend: 'Ext.data.Model',

        config: {
            fields: ['category','type','contact','contactn','date', 'title', 'email', 'descr', 'link']
        }
    });
这是我的商店的代码:

Ext.define('App.store.Jobs', {
    extend: 'Ext.data.Store',
    requires: ['App.model.Jobs','Ext.data.proxy.JsonP'],
    config: {
        model: 'App.model.Jobs',
        storeId:'jobs',
        proxy: {
            type: 'ajax',
            url: 'https://app.com/app/api/api.php',useDefaultXhrHeader: false
            extraParams: {get: 'records', records: 'class'},
            reader: {type: 'json', rootProperty:'data'}
        },
        grouper: {
            groupFn: function(rec) {
                return rec.get('category');
            }, sortProperty: 'category'
        },
        autoLoad: true
    }
});
这是我的列表的代码:

Ext.define('App.view.Jobs', {
    extend: 'Ext.Container',
    xtype: 'jobs',
    requires: ['Ext.field.Search'],
    config: {
        top: 0, bottom: 0, left: 0, right: 0, layout: 'card', fullscreen: true,
        items: [
            {xtype: 'list', title: 'Jobs Listing', grouped: true, indexBar: true, itemTpl: '{title}',
                listeners: {initialize: function() {
                        var store = Ext.getStore('jobs');
                        store.load();
                        this.setStore(store);
                    }}},
            {xtype: 'panel', animate: true, scrollable: {direction: 'vertical'}, tpl: 'Job Title:<br/>{title}<br/>Job Type: <br/>{type}<br/>Position:<br/>{position}<br/>Description:<br/>{descr}<br/>Deadline:<br/>{date}<br/>Contact Person:<br/>{contactn}<br/>Contact Number:<br/>{contact}<br/>Email:<br/>{email}<br/>URL:<br/>{link}'

            }
        ]
    }
});

经过数小时毫无结果的研究和重新设计,我终于找到了解决方案。事实证明,每次我将我的url添加为link.com时,除了我意外地删除了s并将其设置为link.com之外,没有任何东西被返回。我要感谢你们所有人提供的快速响应,这让我学到了一两件事。感谢您的支持

我不太熟悉Android,但我知道在使用Cordova构建iOS应用程序时,我有时会在XCode中看到一些有用的错误。你看到什么了吗?我怀疑CORS可能会失败,因为当您在Cordova应用程序中时,引用域不存在。您可以尝试将CORS标头设置为简单的*Hi,甚至可以设置headerAccess控件Allow Origin:*;似乎无法解决问题。你知道请求是在应用程序外部发出并命中服务器,还是应用程序中没有加载任何内容?嗨,这有点难说,因为当我添加此url时:它工作正常。但当我使用我的时,它不会加载任何记录。如果我能听到成功和失败事件,那会更容易,但商店似乎忽略了侦听器事件。有没有关于如何强制商店监听事件的建议?我会尝试使用Chrome的远程调试功能,看看你是否能找出任何运行时错误。
<access origin="*"/>
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400');