【问题标题】:Can't Append HTML from Instagram using JQuery [duplicate]无法使用 JQuery 从 Instagram 追加 HTML [重复]
【发布时间】:2015-06-22 19:14:56
【问题描述】:

我正在尝试在我的 HTML 中获取 Instagram 帖子的嵌入式版本。我通过 ajax 调用获得了我想要使用的 HTML。

我的 ajax 调用正在工作,我正在获取 HTML,因为我在我的 console.log 中看到它,但是当我加载页面时没有出现任何错误。

这里是ajax调用:

function getIFrame(url) {
    var embedUrl =  "http://api.instagram.com/oembed?url=" + url;
    $.ajax({
        type: "GET",
        url: embedUrl,
        crossDomain: true,
        headers: { 'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': 'GET, POST, PUT' },
        async: true,
        dataType: "jsonp",
        success: function (data) {
            console.log(data.html);
            return data.html;
        }
    });
}

这里是使用它的sn-p。

...
$('<div>', { "style" : "padding-top: 10px;"})
    .append($('<span>').addClass('bold').text("User Website: "))
    .append(getIFrame(urlIG)),
...

console.log 将 HTML 正常输出到控制台,但它不会显示在 HTML 中。

这里是我获得嵌入信息的参考:https://instagram.com/developer/embedding/

这里是 JSON 的示例(与 API 相同的示例):http://api.instagram.com/oembed?url=http://instagr.am/p/fA9uwTtkSN/

【问题讨论】:

  • 'Access-Control-Allow-Origin': '*', 在客户端没用……那是在服务器上设置的……
  • @epascarello 嗯,它似乎什么也没做。但是,无论有没有它,嵌入仍然没有出现。

标签: javascript jquery html ajax instagram


【解决方案1】:

发生这种情况是因为当此代码运行时 getIframe(urlIG) 不会返回任何内容,因此您看不到任何附加内容。

$('<div>', { "style" : "padding-top: 10px;"})
.append($('<span>').addClass('bold').text("User Website: "))
.append(getIFrame(urlIG)),

【讨论】:

  • 函数getIFrame(urlIG)调用ajax调用。这会在显示它出现之前返回 data.htmlconsole.log
  • 您在电话上点了一份比萨饼,并试图在它到达您家之前将其吃掉。从异步调用返回是不可能的。阅读重复的帖子了解更多详情。
  • 你需要在ajax调用成功后追加div。这样可以解决你的问题
猜你喜欢
  • 2013-08-01
  • 2016-01-22
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多