Сенча Touch - Ошибка - JSON Recovery
Я связался с вами, потому что я в тупике. Я пытаюсь получить данные из внешнего веб-сервиса с помощью "ScriptTag", но он не работает, потому что веб-сервис возвращает простой формат json (без JSONP).
Знаете ли вы, есть ли другой способ получить JSON с помощью Sencha?
var helloWorld = new Ext.Application({
Parking: Ext.regModel('Parking', {
fields:[
{name:'parkingName'},
{name:'latitude'},
{name:'longitude'},
{name:'mapUrl'}
],
}),
launch: function() {
this.tabs = new Ext.TabPanel({
fullscreen: true,
dockedItems: [{xtype:'toolbar', title:'JSON Recovery'}],
tabBar: {
ui: 'light',
layout: {
pack: 'center'
}
},
items: [
{cls:'Page1', title:'Page1', html:'Page1'},
{
cls: 'list',
title: 'Page2',
xtype: 'list',
loadingText: 'Chargement',
itemTpl:'<div>{parkingName}</div>',
store: new Ext.data.Store({
autoLoad:true,
model: 'Parking',
proxy: {
type: 'scripttag',
url : 'http://walker.hotcity.lu/hotcity-central-server/webresources/parking/json?format-version=1_0&client-type=iPhone',
reader: {
type: 'json',
root: 'remoteObject'
},
}
}),
},
],
});
}
});
предупреждение: ресурс интерпретируется как сценарий, но передается с приложением MIME-типа /json.
ошибка: Uncaught SyntaxError: неожиданный токен:
Благодарю вас.
Кевин.
1 ответ
То, что вы ищете, это Ajax Proxy. В документации есть несколько примеров того, как его использовать и как его настроить. Считывателем по умолчанию является JSON, поэтому, если ваша модель соответствует информации, полученной с помощью JSON, все будет в порядке.
Еще одна вещь, о которой вы должны знать, это то, что JSONP может обойти межсайтовый скриптинг, но если вы не развертываете в домен walker.hotcity.lu, то браузер не разрешит запрос из-за той же политики происхождения. Сервер должен будет ответить с соответствующими заголовками CORS, чтобы ваше приложение могло получить доступ к данным.