我對firefox和facebook有很大的問題。 我瘋狂在我的web服務器上使用xmlHttpRequest的應用程序。我將這個應用程序添加到測試facebook頁面上的Facebook標籤。它適用於IE,Chrome,Safari,但不適用於Firefox。使用xmlHttpRequest的Facebook應用程序/頁面選項卡在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中工作...
我注意到:通過觀察螢火蟲wh ile加載這個應用程序在Facebook的標籤我可以看到,Facebook沒有要求在源中給出的地址,但其他像:https://0-317.channel.facebook.com/pull?channel=p_1495135952&seq=389&partition=7&clientid=420773d2&cb=682&idle=0&state=active
我認爲這肯定是Firefox的跨域策略......但我該如何解決這個問題問題?
任何人都有同樣的問題?
我提前感謝你。
問候