将数据发送到不同的域

时间:2011-03-22 21:59:41

标签: javascript

我需要使用JavaScript(No JQuery等)从域A向域B发送相当少量的数据(~215个字符)。我完全可以控制域B,因此数据的实现方式并不像它的发送方式那么重要(仅使用JavaScript),域B无需将任何内容发送回域A.

我相信这个问题的一个解决方案是让域A请求带有来自域B的查询字符串的图像文件。在域B上,我可以捕获请求并解析查询字符串中的数据。事实上,我相信这就是分析的工作原理。

可能的其他解决方案?

1 个答案:

答案 0 :(得分: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编码,并且您可以更好地控制事物,而且更难以欺骗。 (仅浏览某个网址是不够的)