我在加载Sencha商店时遇到问题。我的商店声明是这样的:
Ext.regModel('Car',{
idProperty: 'id',
fields: [
//'id', 'company', 'driver', 'carType','xCoordinate','yCoordinate'
{name: 'id', type: 'int'},
{name:'company', type:'string'} ,
{name:'driver', type:'string'},
{name:'carType', type:'string'},
{name:'xCoordinate', type:'int'},
{name:'yCoordinate', type:'int'}
]
});
var strr= new Ext.regStore({
id:'carStore',
model:'Car', //configuration option is the cars
proxy: {
type: 'ajax',
url: 'http://localhost:8080/A/carStore.html&callback=?',
reader: {
type: 'json',
root: 'carss'
},
},
autoLoad: true
});
我将商店列入名单:
CarManagementSystem.views.carList = new Ext.List({
id: 'carList',
store: 'carStore',
onItemDisclosure: function (record) {
var selectedCar = record;
CarManagementSystem.views.addNewCar.load(selectedCar);
CarManagementSystem.views.viewport.setActiveItem('addNewCar', { type: 'slide', direction: 'left' });
},
itemTpl: '<div class="list-item-id">{id}</div>' +'<div class="list-item-driver">{driver}</div>'
});
但是,当我尝试使用我的JSON文件加载列表时,我收到此错误:
XMLHttpRequest无法加载http://localhost:8080/A/carStore.html&callback=?&_dc=1311751412006&limit=25。 Access-Control-Allow-Origin不允许使用null。 煎茶-触摸debug.js:7212
未捕获的TypeError:无法读取未定义的属性“长度”
我将我的JSON文件保存为html格式,并保存在服务器中。我很感激任何帮助。
谢谢!
答案 0 :(得分:1)
您遇到了经典的CORS问题。
我将补充说,在Phonegap中运行时不会出现此问题,因为PhoneGap没有运行Web服务器,而是使用file:// protocol提供文件。
如果您想了解更多信息,我建议您在开发移动网络应用时这是一个常见的问题,您应该了解JSON-P是什么,CORS是什么以及它是如何工作的。
答案 1 :(得分:0)
发出AJAX请求时,无法命中端口号(8080)。如果您最终需要跨域请求,请将代理类型更改为“scripttag”。
答案 2 :(得分:0)
您应该将代理类型从'ajax'更改为'type:'scripttag'