Ext js 6.2 CORS不适用于在viewModel中声明的商店

时间:2017-06-26 11:16:41

标签: javascript extjs cors store extjs6

我在商店中定义了以下商店:

Ext.define('EDUX.store.Students', {
    extend: 'Ext.data.Store',
    alias: 'store.students',
    fields: ['fname', 'lname', 'age', 'enrol', 'class','gender'],
    proxy: {
        type: 'ajax',
        method: 'get',
        withCredentials: true,
        url: global.getBaseUrl() + 'api/api.php?student=view',
        reader: {
            type: 'json',
            rootProperty: 'rows'
        }
    }
});

CORS按预期工作。但是,当我在viewModel中定义同一个商店时,CORS不起作用。以下是我在viewModel中的代码:

Ext.define('EDUX.view.settings.SettingsModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.settings',
    data: {
        name: 'EDUX',
        school: 'Programme'
    },
    stores: {
        students: {
            fields: ['fname', 'lname', 'age', 'enrol', 'class','gender'], withCredentials: true,
            proxy: {url:global.getBaseUrl() + 'api/api.php?student=view',type: 'ajax', reader: {type: 'json', rootProperty: 'rows'}},
autoLoad:true
        }}
});

是否有遗漏或可能是错误?

1 个答案:

答案 0 :(得分:1)

您的商店定义不一样,如果您使用适当的缩进,您会清楚地看到。您的独立定义:

fields: ['fname', 'lname', 'age', 'enrol', 'class','gender'],
proxy: {
    type: 'ajax',
    method: 'get',
    withCredentials: true,
    url: global.getBaseUrl() + 'api/api.php?student=view',
    reader: {
        type: 'json',
        rootProperty: 'rows'
    }
}

你的viewmodel定义,美化:

fields: ['fname', 'lname', 'age', 'enrol', 'class','gender'], 
withCredentials: true,
proxy: {
    url:global.getBaseUrl() + 'api/api.php?student=view',
    type: 'ajax', 
    reader: {
        type: 'json', 
        rootProperty: 'rows'
    }
},
autoLoad:true

您一定要检查是否可以在商店或代理商上定义withCredentials,或者这是否会导致差异; autoLoad是否会改变任何内容,method:'get'是否会改变任何内容。