Можете ли вы добавить заголовки для getJSON в jQuery?

Я искал, чтобы получить данные JSON для интереса, но обратите внимание, что в настоящее время они не позволяют вам получить пользователя и определенную доску, так что нашел mashape, и мне нужно получить ключ API, но с помощью запроса заголовка это можно сделать с помощью get JSON? текущий код:

Мне нужно передать: "X-Mashape-Key: KEY_HERE" я вижу, что это может быть сделано в ajax, но не знаю, как переписать get JSON как цикл, но можно увидеть здесь:

http://blog.mashape.com/mashape-sample-code-executing-ajax-request-using-jquery/

$.getJSON(settings.apiPath + settings.username + '/boards/', function (data) {
            beforeSend: setHeader,
            console.log(data);

            for (var i = 0; i < settings.count; i++) {
                var feed = false;
                if(data.data[i]) {
                    feed = data.data[i];
                }

                var temp_data = {
                    message: truncate(feed["message"], 100),
                    url: feed["link"]
                };

                $('#pinterestFeed ul').append('<li class="feed">' + templating(temp_data) + '</li>');
            }
            $(".pinterest #loading").hide();  
        });

4 ответа

Решение

$.getJSON является сокращением для

$.ajax({
    dataType: "json",
    url: url,
    data: data,
    success: success
});

Таким образом, вы можете просто использовать его как

$.ajax({
    beforeSend: function(request) {
        request.setRequestHeader("X-Mashape-Key", 'key_here');
    },
    dataType: "json",
    url: settings.apiPath + settings.username + '/boards/',
    success: function(data) {
        //Your code
    }
});

Использование $.ajax() было бы лучше, так как $.getJSON это сокращенная функция, если вы не можете использовать $.ajax(), вы можете использовать $.ajaxSetup для установки заголовков, как:

$.ajaxSetup({
  headers : {   
    'X-Mashape-Key' : 'key_here'
  }
});
$.getJSON(settings.apiPath + settings.username + '/boards/', function (data) {
 ...

Но обратите внимание, что он устанавливает заголовки для будущих запросов Ajax.

Так как getJSON является сокращенной нотацией для $.ajax(), почему бы не использовать это

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

ajax() обеспечивает ловушку под названием, которую вы можете указать beforeSend: function(jqXHR, settings)

Хук позволяет добавлять пользовательские заголовки к исходящему запросу AJAX... Я думаю, в отличие от $.ajaxSetup... вам не нужно беспокоиться о сбросе после его использования

Не думайте, что вы можете установить заголовки на getJSON. http://api.jquery.com/jQuery.getJSON/

Другие вопросы по тегам