1
我有一個數據存儲,從我的服務器上的JSON api獲取信息。當我在WebKit/Chrome中運行代碼時,一切似乎都正常,但如果我將用戶代理更改爲iPhone 4.1等,則表明JSON請求未正確設置。與其發送獲取JSON的請求,它只是發送請求並獲取HTML呈現的頁面。在SenchaTouch中爲Ext.data.Store代理設置請求標頭
這是我所定義的存儲:
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請求的例子?
這似乎沒有工作,我試着在我的代理對象中設置defaultHeaders和標題,但它仍然沒有正確設置請求標題。 – csaunders 2011-03-15 15:55:43
您是否用接受替換了Content-Type?你的回覆不清楚。在Chrome中運行它時,請使用開發人員工具檢查請求中的標題。 – 2011-03-15 18:03:17
原來,這是一個服務器端的UA檢測錯誤,總是將任何請求重定向到/ admin/products。對於含糊不清的道歉,我的意思是我的確嘗試了你的建議。感謝您的幫助:) – csaunders 2011-03-15 19:03:42