【问题标题】:jsonp request does not show facebook datajsonp 请求不显示 facebook 数据
【发布时间】:2014-04-17 15:40:25
【问题描述】:

我正在使用 JSON 来显示来自网站的信息。这本书的例子给了我一个自定义网站来获取信息,但是当我用蜘蛛侠的 facebook 页面替换 url 时,似乎数据正在处理,但信息不显示。是否有一些我错过的关键步骤。

var lastReporttime = 0;
window.onload= function(){ 
  setInterval(handleRefresh,3000);
}

function updateSales(sales) {
  var salesDiv= document.getElementById("sales");
  for (var i = 0; i < sales.length; i++) {
    var sale = sales[i];
    var div = document.createElement("div");
    div.innerHTML = sale.category + sale.about + "spiderman";
    salesDiv.appendChild(div);
  }

  if (sales.length > 0) { lastReporttime = sales[sales.length-1].time; } 
}

function handleRefresh() {
  var url = "http://graph.facebook.com/SpiderManDVD"
          + "callback=updateSales"
          + "&lastreporttime=" + lastReporttime
          + "&random="+ (new Date()). getTime();

  var newScriptElement= document.createElement("script");
  newScriptElement.setAttribute("src", url);
  newScriptElement.setAttribute("id", "jsonp");

  var oldScriptElement= document.getElementById("jsonp");
  var head= document.getElementsByTagName("head")[0];
  if (oldScriptElement == null) {
    head.appendChild(newScriptElement);
  } else {
    head.replaceChild(newScriptElement, oldScriptElement);
  }
}

【问题讨论】:

标签: javascript json jsonp


【解决方案1】:

您从your book example 收到的响应返回一个 JSON 数组,该数组已在您的代码中完美处理。

但是来自facebook api 的响应返回了一个 JSON 对象,它破坏了您的代码。

检查两个 url 并更新 updateSales 中的逻辑,以根据您的用例处理 JSON 数组和 JSONObject。

类似的东西

function updateSales(sales) {
  var salesDiv= document.getElementById('sales');

  // Check if sales is array or not (One of the crude ways, ofcourse not best but may work for you)
  if (typeof sales.length == 'undefined') {
    sales = [sales];
  }

  for (var i = 0; i < sales.length; i++) {
    var sale = sales[i];
    var div = document.createElement("div");

    div.innerHTML = sale.category + sale.about + "spiderman";
    salesDiv.appendChild(div);
  }

  if (sales.length > 0) { 
    lastReporttime = sales[sales.length-1].time; 
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2022-01-12
    • 2020-05-24
    • 2023-02-01
    • 2014-08-20
    • 1970-01-01
    • 2019-06-06
    相关资源
    最近更新 更多