你能在jQuery中为getJSON添加标题吗?

时间:2014-07-29 09:21:20

标签: jquery ajax json getjson

我一直在寻找获得JSON数据的pinterest但是请注意他们目前不会让你得到一个用户和一个特定的板,所以找到mashape我需要获得API密钥但使用头请求可以使用getJSON吗?目前的代码是:

我需要传递:“X-Mashape-Key:KEY_HERE”我看到它可以在ajax中完成,但不知道如何将getJSON重写为循环,但可以在这里看到:

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 个答案:

答案 0 :(得分:19)

$.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
    }
});

答案 1 :(得分:8)

使用$.ajax()本来会更好,因为$.getJSON是简写功能,如果你不能使用$.ajax(),你可以使用$.ajaxSetup设置标题,如下:

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

但请注意,它为将来的Ajax请求设置了标头。

答案 2 :(得分:1)

因为getJSON是$ .ajax()的快捷符号,所以为什么不使用

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

ajax()提供了一个可以通过beforeSend: function(jqXHR, settings)

指定的挂钩

钩子允许人们为传出的AJAX请求添加自定义标头...我认为不像$.ajaxSetup ...你不必担心使用它后的取消设置

答案 3 :(得分:0)

不要以为你可以在getJSON上设置标题。 http://api.jquery.com/jQuery.getJSON/