Ich habe kürzlich mit jQuery gearbeitet und stieß auf ein Problem, wo ich es nicht in ein Benutzer-Skript aufnehmen konnte, weil XmlHttpRequest same origin policy verwendet. Nach weiteren Tests habe ich festgestellt, dass die meisten Browser auch die von W3C definierte Zugriffssteuerung Cross-Origin Resource Sharing als Workaround für Probleme mit derselben Ursprungsrichtlinie unterstützen. Ich testete dies, indem ich das jQuery-Skript auf einem lokalen Webserver hosten ließ, der den http-Header enthielt, wodurch das Skript mit XmlHttpRequest heruntergeladen werden konnte, damit es in mein Benutzer-Skript aufgenommen werden konnte. Ich würde gerne eine gehostete Version von jQuery verwenden, wenn ich das Skript freigebe, aber bisher habe ich mit Tools wie http://www.seoconsultants.com/tools/headers keine Seiten gefunden, die den ursprungsübergreifenden Zugriff auf das jQuery-Skript erlauben. Hier ist die Liste, die ich bisher getestet:Alle gehosteten Versionen von jQuery mit dem Header 'Access-Control-Allow-Origin: *'?
- http://www.asp.net/ajaxlibrary/CDN.ashx
- http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery
- http://docs.jquery.com/Downloading_jQuery#CDN_Hosted_jQuery
es irgendwelche anderen gehosteten Versionen von jQuery, die Cross Herkunft Zugriff erlauben? Ich weiß, dass jQuery normalerweise über ein Skript-Tag (manchmal ein dynamisch erstelltes Skript-Tag) geladen wird, aber in diesem speziellen Fall muss ich XmlHttpRequest und Eval verwenden, um sicherzustellen, dass es in den richtigen Bereich geladen wird. Google Chrome unterstützt Benutzerskripts, unterstützt jedoch nicht @require. Das heißt, die einzige Möglichkeit, jquery in a user script in Google Chrome zu verwenden, besteht darin, es in die Datei .user.js einzubetten oder sie über ein XmlHttpRequest-Objekt zu laden und auszuwerten. Die Einbettung ist eine nicht optimale Lösung, und während Chrome Extensions Ihnen erlauben, die jQuery js-Dateien in Erweiterungen einzuschließen, würde ich lieber mit Benutzer-Skripten bleiben, da sie viel einfacher sind und in mehr als nur einem Browser funktionieren können. Ich habe bereits Tickets mit den Teams Google Ajax APIs und jQuery eingereicht, um den domänenübergreifenden Zugriff auf das CDN zu ermöglichen, aber ich schätze, dass ich es nur für mich selbst hosten muss.
Warum brauchen Sie jQuery über XMLHttpRequest importieren? Warum nicht einfach ein Skript-Tag dafür erstellen? – Pointy
@Pointy Ich habe die Frage mit weiteren Informationen aktualisiert, aber kurz gesagt, ich versuche ein Benutzerscript mit jQuery zu erstellen, das sowohl in Google Chrome als auch in Firefox funktioniert. –
Ehrlich Mann, Es gibt Zeiten, in denen das Verwenden deines eigenen Bewirtungswesens ein guter Spielplan ist: es sieht so aus, als ob das einer von ihnen ist. Stellen Sie nur sicher, dass es gut und im Cache ist, es ist nicht wie jQuery ist eine riesige Datei. –