Подтвердить что ты не робот

Backbone.js и междоменные скрипты

Я хочу работать с backbone.js и jquery. Предполагается, что приложение работает автономно на мобильных телефонах (например, "localhost" ), есть несколько вызовов на стороне сервера, где-то в Интернете.

Каков наилучший способ реализации кросс-доменных запросов с помощью backbone.js?

Я хотел бы использовать JSON, но в случае необходимости я мог бы вернуться к REST.

Вот мой не очень впечатляющий код:

App.Collections.Events = Backbone.Collection.extend({
   model: Event,    
   url: 'http://mydomain.com/api/getevents/user_id/1/'
});
4b9b3361

Ответ 1

Существует два способа разрешить междоменные XMLHttpRequests, который используется методом Backbone.js для извлечения данных из URL. Первое является подходящим, если вы контролируете серверную сторону домена, отличного от источника, к которому вы пытаетесь подключиться, и включаете в себя внедрение Cross-Origin Совместное использование ресурсов (или CORS).

Чтобы реализовать CORS, верните часть "Origin" в заголовок запроса HTTP Referer (бит до начала path, он должен соответствовать регулярному выражению ^.+?\/{2}[^\/]*) в заголовке ответа Access-Control-Allow-Origin для доменов вы хотите обслуживать:

 Access-Control-Allow-Origin: http://mydomain.com

Вам может потребоваться переопределить Backbone.sync, чтобы right настройки для объекта XMLHttpRequest.

Второй вариант, если у вас нет доступа к серверу перекрестного происхождения, должен был проксировать запросы через ваш собственный сервер (либо исходный, либо один, который позволяет CORS). Очевидно, кто бы ни владел доменом, который вы пытаетесь вызвать, может не понравиться, если вы это делаете, но это по дизайну - если они не хотят, чтобы вы звонили в вашу службу, у них есть только один IP-адрес для блокировки, а не каждый из ваших IP клиентов.