我有一个数据存储,可以从我服务器上的JSON api获取它的信息。当我在WebKit / Chrome中运行代码时,一切似乎都运行正常,但如果我将用户代理更改为iPhone 4.1等,则看起来JSON请求未正确设置。不是发送获取JSON的请求,而是简单地发送请求并获取HTML呈现页面。
这是我定义的商店:
Product.ProductStore = new Ext.data.Store({
model: 'Product',
proxy: {
type: 'ajax',
url: '/admin/products.json',
reader: {
type: 'json',
root: 'products'
}
},
autoLoad: true,
storeId: 'productStore',
getGroupString: function(record){
return record.get('vendor')[0];
}
});
所以我真正希望这个商店做的是向/admin/products.json发送请求,该请求在桌面上按预期工作。但是当我在我的模拟器中或甚至在设备上运行它时,它似乎只是将请求发送到/ admin / products而不是返回HTML。
有些人建议这是一个rails服务器问题,我需要为我的请求设置内容类型。问题是我该如何做到这一点?
我尝试了以下内容,但似乎无法正常工作:
Product.ProductStore = new Ext.data.Store({
model: 'Product',
proxy: {
type: 'ajax',
url: '/admin/products.json',
// Trying to set the headers for the request -- not working
headers: {
'Content-Type': 'application/json'
},
reader: {
type: 'json',
root: 'products'
}
},
autoLoad: true,
storeId: 'productStore',
getGroupString: function(record){
return record.get('vendor')[0];
}
});
我可以简单地用我自己的AJAX请求替换内容类型标头设置正确吗?如果是这样,是否有一些使用商店的例子和它自己的自定义AJAX请求?
答案 0 :(得分:3)
应该是
'Accept' : 'application/json'
Accept是客户端用来告诉服务器它更喜欢哪种媒体类型的标头。 Content-Type是服务器作为响应的一部分发送的标头,告诉客户端数据是什么。