Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jsonp请求不显示facebook数据_Javascript_Json_Jsonp - Fatal编程技术网

Javascript jsonp请求不显示facebook数据

Javascript jsonp请求不显示facebook数据,javascript,json,jsonp,Javascript,Json,Jsonp,我正在使用JSON显示来自站点的信息。这本书的例子很有效,它给了我一个自定义网站,让我可以从中获取信息,但当我用蜘蛛侠的facebook页面替换url时,数据似乎正在处理中,但信息没有显示出来。是否有一些关键的步骤,我错过了 var lastReporttime = 0; window.onload= function(){ setInterval(handleRefresh,3000); } function updateSales(sales) { var salesDiv= d

我正在使用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);
  }
}

从接收到的响应返回一个JSON数组,该数组在代码中得到了完美的处理

但是来自的响应返回一个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; 
  }
}

请使用调试器工具查看您是否得到脚本的响应书给我的链接是我从中得到响应的。看起来像是来自服务器的响应。