2014-01-17 2 views
1

Мне нужно передать ключ API каждый раз, когда я хочу сохранить свои модели/коллекцию или сделать любой запрос. Возможно ли это с jquery или позвоночником?Ключ API-интерфейса Backbone pass с запросами get/post

+0

ли эта нить отвечает на ваш вопрос? http://stackoverflow.com/questions/10547498/how-to-override-backbone-sync-so-it-adds-the-apikey-and-username-at-the-end – Kyle

+0

Ответ на вопрос @Emile linked идеально подходит для решения этого вопроса. Я бы рекомендовал подход 'ajaxSend', потому что он позволяет вам работать с ключом API в одном месте и обрабатывать каждый запрос AJAX, который вы делаете послесловие, без каких-либо дополнительных усилий. Кроме того, вы * можете * переопределить синхронизацию с базой, но тогда любые запросы AJAX, не относящиеся к Backbone AJAX, не будут получать ключ. – machineghost

ответ

1

Да, вы можете отправить его заголовку. Я делаю это:

   this.model.save(attrs, 
           { 
           headers: {api_key:that.api_key}, 
           success: function() { 

            }, 
            error: function(model, xhr, options){ 

            }, 
           }); 
+0

Этот подход работает, но для этого требуется много дублирования кода, так как он вам нужен для каждого вызова 'save' (или' destroy'), который вы делаете. Используя 'Backbone.sync' (или еще лучше, используя функцию jQuery' $ .ajaxSend'), вы можете обрабатывать всю проблему с ключом API в одном месте. – machineghost

-1

использовать $ .ajaxSetup:

$.ajaxSetup({ 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader('api_key', api_key); 
    } 
}); 

обертку это в функцию и запустить его на каждой странице (если у вас есть несколько страниц). если это одностраничное приложение, просто запустите его, когда базовые нагрузки загружаются.

вы можете определить ключ api где-либо (поместить его на объект окна или скрыть его в DOM) или передать его этой функции в качестве параметра.

+0

Кто бы ни проголосовал за это, не могли бы вы дать какое-то объяснение, чтобы я мог улучшить ответ? –

Смежные вопросы