你能在jQuery中为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('' + templating(temp_data) + ' '); } $(".pinterest #loading").hide(); });
$ .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)
指定的钩子beforeSend: function(jqXHR, settings)
钩子允许一个人向传出的AJAX请求添加自定义标题…我认为不像$.ajaxSetup
…你不必担心使用它后的$.ajaxSetup
不要以为你可以在getJSON上设置标题。 http://api.jquery.com/jQuery.getJSON/