【问题标题】:Facebook App/Page Tab with xmlHttpRequest doesn't work in Firefox带有 xmlHttpRequest 的 Facebook 应用程序/页面选项卡在 Firefox 中不起作用
【发布时间】:2012-03-20 18:42:47
【问题描述】:

我对 firefox 和 facebook 有很大的问题。 我在使用 xmlHttpRequest 的网络服务器上创建了一个应用程序。我将此应用程序添加到测试 facebook 页面上的 facebook 选项卡中。它适用于 IE、Chrome、Safari,但不适用于 firefox。

请求会一直加载直到超时。

我正在使用的 JS 函数:

function createXmlHttpRequest() {
 try {
   if (typeof ActiveXObject != 'undefined') {
     return new ActiveXObject('Microsoft.XMLHTTP');
   } else if (window["XMLHttpRequest"]) {
     return new XMLHttpRequest();
   }
 } catch (e) {
   changeStatus(e);
 }
 return null;
};


function downloadUrl(url, callback) {
 var status = -1;
 var request = createXmlHttpRequest();
 if (!request) {
   return false;
 }

 request.onreadystatechange = function() {
   if (request.readyState == 4) {
     try {
       status = request.status;
     } catch (e) {

     }
     if (status == 200) {
       callback(request.responseXML, request.status);
       request.onreadystatechange = function() {};
     }
   }
 }
 request.open('GET', url, f);
 try {
   request.send(null);
 } catch (e) {
   changeStatus(e);
 }
};

function xmlParse(str) {
  if (typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined') {
    var doc = new ActiveXObject('Microsoft.XMLDOM');
    doc.loadXML(str);
    return doc;
  }

  if (typeof DOMParser != 'undefined') {
    return (new DOMParser()).parseFromString(str, 'text/xml');
  }

  return createElement('div', null);
}

function downloadScript(url) {
  var script = document.createElement('script');
  script.src = url;
  document.body.appendChild(script);
}

我通过downloadUrl()调用它

请求文件的标题:

header('Access-Control: allow <*>');
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Methods: GET');
header('Access-Control-Allow-Headers: X-PINGOTHER');
header("Content-type: text/xml");

我真的尝试了所有方法,但它在 Firefox 中不起作用......

我注意到:通过在 facebook 选项卡中加载此应用程序时观察 firebug,我可以看到 facebook 没有请求源中给出的地址,但其他地址如:https://0-317.channel.facebook.com/pull?channel=p_1495135952&seq=389&partition=7&clientid=420773d2&cb=682&idle=0&state=active

我认为这肯定是 firefox 跨域策略...但是我该如何解决这个问题呢?

有人遇到过同样的问题吗?

提前谢谢你。

问候

【问题讨论】:

    标签: ajax facebook xmlhttprequest


    【解决方案1】:

    好的,找到问题了。 Facebook 使用的是 UTF-8,但我的页面没有。所以停在变音符号处。 所以这根本不是请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      相关资源
      最近更新 更多