Du verwendest eine nicht standardisierte, nicht wirklich dokumentierte (?) interne API
Dokumentiert ist sie durchaus.
Dem kann ich nicht entnehmen, dass XHR domainübergreifend möglich ist.
Was soll am bewussten Runterladen von Daten via AJAX überhaupt riskant sein?
Meinst du das ernst? Ich soll ich dir erklären, warum die Same-Origin-Policy generell sinnvoll ist?
Den Script-Tag-Hack dagegen hat man sicher nicht abgestellt, mit dessen Hilfe man jedes JavaScript aus aller Welt laden und ausführen kann, und zwar ohne dass der Benutzer etwas davon merkt.
Das ist kein Hack, sondern hat System. Es ist i.d.R. keine Sicherheitslücke, Scripts von anderen Servern zu laden. JSON-Diebstahl mit überschriebenen Kernobjekt-Konstruktoren war da die Ausnahme. Mit <img> und <iframe> ist es möglich, GET-Requests abzufeuern, mit <form> lassen sich POST-Request absenden, ohne auf die Rückgabe zugreifen zu können. Das CSRF-Potenzial ist weitaus geringer als zu vollem XHR-Zugriff.
Der Webservice sollte sinnvollerweise ein JSONP-Webservice sein sollte oder zumindest CORS unterstützen, dessen Unterstützung Firefox 5 erst verbessert hat.
Sollte er? Nur weil der tolle Browser nicht mehr anders will?
Nein, weil das die vernünftige und richtige Lösung wäre.
Klar, man könnte auf den Service verzichten oder den Betreiber drängen, doch bitte diese und jene Technologie zu unterstützen, damit die Browser wieder für eine Weile zufrieden sind...
Ein in JavaScript nutzbarer Webservice sollte JSONP oder CORS bieten, ja, so einfach ist das. Weil das die bleibenden Techniken Cross-Domain-Zugriffe sind. Es dürfte für den Betreiber sehr einfach sein, etwa JSONP zu implementieren.
Mathias