Чтение массива JSON из междоменного сенча
Я хотел бы хранить массив объектов JSON из другого домена. Я перепробовал все возможные конфигурации в прокси, но он все еще не работает. Поэтому, пожалуйста, помогите мне.
Массив ответа:
[
{
"id": 1,
"title": "Take A Bow",
"artist": "Rihanna",
"cover": "resources/images/cd-covers/take-a-bow.jpeg",
"audio": "http://home.no/hamed2ganja12/Single/Rihanna%20-%20Take%20A%20Bow%20%28www.Iran2Music.Org%29.mp3"
},
{
"id": 2,
"title": "Ridin' Solo",
"artist": "Jason Derulo",
"cover": "resources/images/cd-covers/ridin-solo.jpeg",
"audio": "http://ms11.cyworld.com.cn/d044/2010/05/01/167/1272686567306986_file.mp3"
},
{
"id": 3,
"title": "Hero",
"artist": "Nickelback",
"cover": "resources/images/cd-covers/hero.jpeg",
"audio": "http://api.ning.com/files/hXzO1QWnGr6ZgtB05IbaLW5IId7mjLPvOMGA0I8JHY*u*ZMCrczyw*XZrimUE7XQHFHgOLWa2b8s0xGfoHg5nRs-J84KlSGO/NickelBackHeroSpidermanTheme.mp3"
}]
модель:
Ext.define('MyApp.model.Track', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'id', type: 'int' },
{ name: 'title', type: 'string' },
{ name: 'artist', type: 'string' },
{ name: 'cover', type: 'string' },
{ name: 'audio', type: 'string' }
]
}
});
Хранить:
Ext.create('Ext.data.Store',{
requires:['MyApp.model.Track'],
autoLoad:true,
model:'MyApp.model.Track',
storeId:'myStore',
autoSync:true,
fields:["title","artist"],
proxy:{
type:'jsonp',
url: 'http://www.tux-components.com/examples/playlist/app/music.json',
reader: {
type: 'json'
}
},
listeners:{
load: function(store, records, successful,operation,eOpts){
console.log('loaded records count is '+store.getCount());
}
}
});
Я обнаружил, что это дает ошибку тайм-аута. но URL работает нормально в браузере. Что я должен делать дальше? Помогите мне, пожалуйста..
1 ответ
Данные, возвращаемые удаленным сервером, должны быть JSONP, а не JSON - основное отличие заключается в функции обратного вызова, которая оборачивает возвращаемый объект.
Я не знаю, какую фреймворк / версию вы используете, но очень внимательно прочитайте документацию по JSONP Proxy API - все ответы находятся внутри!