Problemumgehung für Richtlinien mit demselben Ursprung mithilfe von document.domain in Javascript

Ich habe Probleme mit Richtlinien derselben Herkunft in Javascript. Ich habe über eine Problemumgehung dafür mit dem gelesendocument.domain Variable, aber ich kann die Problemumgehung nicht zum Laufen bringen. Die Problemumgehung besteht darin, dass Sie festlegen können sollendocument.domain zu'example.com' so dass, wenn Sie Code ausführenfoo.example.com es kann Daten über XHR von ladenbar.example.com.

Details zur Problemumgehung finden Sie hier:

https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript

Mein Beispielcode - der nicht die gewünschten Ergebnisse liefert - wird von einer URL wie der folgenden ausgeführthttp://foo.example.com/:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script>
document.domain = 'example.com';
window.onload = function() {
    var req = new XMLHttpRequest();
    var url = 'http://bar.example.com/';
    req.open('GET', url, true);
    req.onreadystatechange = function (aEvt) {
        if (req.readyState == 4) {
            var elem = document.getElementById('result');
            if (req.status == 200) {
                var data = req.responseText;
            } else {
                var data = "Error loading page: " + req.status;
            }
            elem.innerHTML = data;
        }
    };
    req.send(null);
};
</script>
Result:<hr>
<div id="result"></div>
</body>
</html>

Die Ausgabe von diesem Code:

Result:
Error loading page: 0

Wenn ich mich ändereurl zu'http://foo.example.com/'funktioniert alles einwandfrei Gibt es einen Fehler in meinem Beispielcode?

Ich möchte keinen Proxy verwenden, da diese langsamer und weniger effizient sind und den Datenverkehr auf unserem Webserver erhöhen. Es wäre wirklich cool, wenn diese Problemumgehung tatsächlich funktionieren würde. Ist diese Problemumgehung "Pie in the Sky"?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage