2011-03-22 72 views
2

我只需要使用JavaScript(無JQuery等)從域A向域B發送相當少量的數據(〜215個字符)。我完全控制域B,所以數據如何到達真的沒有發送數據那樣重要(僅使用JavaScript),並且域B不需要將任何內容發送回域A.發送數據到不同的域

I相信這個問題的一個解決方案是讓Domain A請求一個包含來自Domain B的查詢字符串的圖像文件。然後,Domain BI可以捕獲請求並解析查詢字符串中的數據。實際上,我相信這是分析工作的方式。

可能的其他解決方案?

回答

1

圖像並不理想,因爲現代瀏覽器可能會將其作爲隱私權的一部分予以屏蔽,認爲我在某處看到了它。

個人而言,我會動態創建一個form並提交隱框:

var _TargetPage = "http://www.domainB.com/page.php"; 

function SendData(strData) { 
    var oFrame = document.getElementById("HiddenFrame"); 
    if (!oFrame) { 
     oFrame = document.createElement("iframe"); 
     oFrame.id = "HiddenFrame"; 
     oFrame.name = "HiddenFrame"; 
     oFrame.style.display = "none"; 
     document.body.appendChild(oFrame); 
    } 

    var oForm = document.getElementById("HiddenForm"); 
    if (!oForm) { 
     oForm = document.createElement("form"); 
     oForm.id = "HiddenForm"; 
     oForm.method = "POST"; 
     oForm.action = _TargetPage; 
     oForm.target = "HiddenFrame"; 
     document.body.appendChild(oForm); 

     var oInput = document.createElement("input"); 
     oInput.type = "hidden"; 
     oInput.name = "HiddenInput"; 
     oForm.appendChild(oInput); 
    } 

    oForm.elements["HiddenInput"].value = strData; 
    oForm.submit(); 
} 

這樣你就不必用URL編碼混亂,你有過的東西更多的控制,再加上它很難欺騙。 (單獨瀏覽到某個URL是不夠的)

+0

有趣,我明天再看看。 – RandomWebGuy 2011-03-22 23:06:11

+0

乾杯,我沒有測試它,所以請報告任何語法問題。 :) – 2011-03-22 23:16:38