Ext.grid.Panel 从其他域加载
Ext.grid.Panel loading from other domain
当我从内存加载时一切正常
Ext.define('MyApp.store.Personnel', {
extend: 'Ext.data.Store',
alias: 'store.personnel',
model: 'MyApp.model.Personnel',
data: { items: [
{ name: 'Jean Luc', email: "jeanluc.picard@enterprise.com", phone: "555-111-1111" },
{ name: 'Worf', email: "worf.moghsson@enterprise.com", phone: "555-222-2222" },
{ name: 'Deanna', email: "deanna.troi@enterprise.com", phone: "555-333-3333" },
{ name: 'Data', email: "mr.data@enterprise.com", phone: "555-444-4444" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
rootProperty: 'items'
}
}
});
然后我尝试从其他域的 api 加载,更改代理:
proxy: {
type: 'jsonp',
url: 'http://localhost:62770/api/user'
},
但是没用。甚至没有发送请求
来自控制器的请求工作正常
Ext.define('MyApp.view.main.MainController', {
extend: 'Ext.app.ViewController',
alias: 'controller.main',
onItemSelected: function (sender, record) {
GetUsers()
},
});
async function GetUsers() {
const response=await fetch('http://localhost:62770/api/user',{mode: 'no-cors'});
.................
}
您必须添加自动加载商店或手动加载它。
// ==> in proxy
autoLoad: true
// ==> in controller
myStore.load();
当我从内存加载时一切正常
Ext.define('MyApp.store.Personnel', {
extend: 'Ext.data.Store',
alias: 'store.personnel',
model: 'MyApp.model.Personnel',
data: { items: [
{ name: 'Jean Luc', email: "jeanluc.picard@enterprise.com", phone: "555-111-1111" },
{ name: 'Worf', email: "worf.moghsson@enterprise.com", phone: "555-222-2222" },
{ name: 'Deanna', email: "deanna.troi@enterprise.com", phone: "555-333-3333" },
{ name: 'Data', email: "mr.data@enterprise.com", phone: "555-444-4444" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
rootProperty: 'items'
}
}
});
然后我尝试从其他域的 api 加载,更改代理:
proxy: {
type: 'jsonp',
url: 'http://localhost:62770/api/user'
},
但是没用。甚至没有发送请求
来自控制器的请求工作正常
Ext.define('MyApp.view.main.MainController', {
extend: 'Ext.app.ViewController',
alias: 'controller.main',
onItemSelected: function (sender, record) {
GetUsers()
},
});
async function GetUsers() {
const response=await fetch('http://localhost:62770/api/user',{mode: 'no-cors'});
.................
}
您必须添加自动加载商店或手动加载它。
// ==> in proxy
autoLoad: true
// ==> in controller
myStore.load();