Я шукав навколо на форумах і читатидеякі інші повідомлення. Тим не менш, я не знаю, як саме йти про це. У мене є магазин з проксі, що я намагаюся завантажити з даними з сервера. Я спробував як jsonp, так і відпочинок за типом proxy без успіху. В обох випадках я отримую 403 заборонену помилку. після чого виникає помилка XMLHTTPRequest.
Ось помилка, яку я бачу в консолі Chrome:
Ось мій код:
Ext.define("EventsTest.store.Venues", {
extend: "Ext.data.Store",
requires: [
"Ext.data.proxy.Rest",
],
config: {
storeId: "venuesStore",
model: "EventsTest.model.Venue",
proxy: {
type: "rest",
url: "http://leo.web/pages/api/",
headers: {
"x-api-key": "senchaleotestkey"
},
limitParam: false,
pageParam: false,
enablePagingParams: false
/*
extraParams: {
latitude: 45.250157,
longitude: -75.800257,
radius: 5000
}
*/
}
}
});
Відповіді:
0 для відповіді № 1Політика безпеки в браузері та на робочому століІнший, навіть якщо він не працює в браузері, він може працювати в телефоні. Але тепер питання полягає в тому, як управляти, поки ви розробляєте додаток, для цього подивіться на це подібне питання:
Як використовувати json proxy для доступу до віддалених служб під час розробки
Що стосується запиту OPTION, який отримує 403 відповіді, спробуйте налаштувати withCredentials : false
і useDefaultHeader : false
. Подробиці тут
http://docs.sencha.com/touch/2-1/#!/api/Ext.data.Operation-cfg-withCredentials http://docs.sencha.com/touch/2-1/#!/api/Ext.data.Connection-cfg-useDefaultHeader
Я б запропонував вам прочитати більше про це CORS
якщо ви хочете використовувати віддалені служби, ви можете дозволити CORS
на сервері.
0 для відповіді № 2
Ви запускаєте свою програму на локальному домені "sencha.test", але ви намагаєтеся отримати доступ до даних "leo.web" - помилка полягає в тому, що ви намагаєтеся завантажити дані через домени, які не дозволяється через AJAX.
Ви скажете, що JSONP не працює ... чому б і не? Чи ваш сервер повертає дійсний JSONP?