1

所以我正在尝试构建一个能够自动分页、与颜色框集成并通过 jQuery.ajax 加载标记元素并将它们加载到 Dom 的 tumblr 站点。

我得到了 jsonp 响应,我解析它就好了,然后当我附加时,我得到一个控制台日志,告诉我这个文件是被禁止的。我想我需要将我的 api 密钥与图像请求一起传递,但我不知道该怎么做。

我的代码如下。

$.ajax({
  url: 'http://api.tumblr.com/v2/blog/ryansimmonsiscool.tumblr.com/posts/photo?api_key=myApikey&limit=6',
  dataType: 'jsonp',
  success: function(results) {
    console.log(results);
    var posts = results.response.posts;
    $.each(posts, function(i, posts) {
      //console.log(this.photos);

      var photos = this.photos;

      $.each(photos, function(i, photos) {
        console.log(this.alt_sizes[3].url);
        var thumb = '<img src=' + this.alt_sizes[3].url + '/>';
        $('#contSlug').append(thumb);
        console.log(this.original_size.url);
        var fullres = '<img src=' + this.original_size.url + '/>';
        $('#contSlug').append(fullres);
      });
    });
  }
});

编辑:我也尝试定义我的 $.ajaxSetup 以包含我的 api_key 以便当附加图像并且客户端向服务器询问它使用 get 方法中的 api_key 检索的数据(下面的代码)但我仍然得到403 和断开的链接。

$.ajaxSetup({
  data: {
    api_key:'example-api-key'
  }
});
4

2 回答 2

0

您可以将请求类型和请求中的数据设置为变量type(根据需要设置为“get”或“post”)。然后创建一个data对象并在该对象中设置请求变量。这将使用 中指定的方法传递给服务器type

$.ajax({
type: "get",
data: {
        api_key:myAPIKeyGoesHere,
        limit:6
},
url:'http://api.tumblr.com/v2/blog/ryansimmonsiscool.tumblr.com/posts/photo',
cache: false,
dataType: 'jsonp',
success: function(results){
    console.log(results);
    var posts = results.response.posts;
    $.each(posts, function (i, posts){

        //console.log(this.photos);

        var photos = this.photos;

        $.each(photos, function (i, photos) {
            console.log(this.alt_sizes[3].url)
            var thumb = "<img src="+this.alt_sizes[3].url+"/>";
            $("#contSlug").append(thumb);
            console.log(this.original_size.url)
            var fullres = "<img src="+this.original_size.url+"/>";
            $("#contSlug").append(fullres);
            })
        })
}
 });

希望这可以帮助。

于 2013-09-20T21:49:59.233 回答
0

我遇到了同样的问题......不确定是否同样的问题,但在我的情况下,图像标签中的结尾斜杠是什么让它脱落,所以像这样改变上面的内容:

var fullres = "<img src="+this.original_size.url+">";

我正在使用 underscore.js 模板做类似的事情,结果是这样的:

<img src=<%= post.photos[0].alt_sizes[0].url %>>

除此之外,我们的代码与使用 ajax 等的代码相同。

于 2016-05-24T22:50:47.457 回答