Ich arbeite an einem Webprojekt, das viel Ajax verwendet. Ich verwende Playframework, und in meinen HTML-Vorlagen habe ich Zugriff auf den Reverse-Router von Playframework, so dass ich die URLs vom Router abrufen kann und mir keine Gedanken darüber machen muss, was passiert, wenn ich später beschließe, die URL-Struktur der Website zu ändern. Ich habe jedoch keinen Zugriff auf den Reverse-Router in den externen js-Dateien, möchte aber oft die Umleitung des Reverse-Routers für Anfragen in diesen Dateien nutzen.
Ich kam mit einer Lösung, die nicht jede externe Ajax-Funktion zwingt, einen URL-Parameter zu akzeptieren, und das war, ein globales URL-Objekt wie dieses zu erstellen:
var globalUrls = {
confirmImageUpload : "@routes.UploadController.confirmResourceUpload()",
anotherUrl : "@routes.AnotherController.anotherControllerMethod()"
}
Ich verwende dieses Objekt dann in den externen Js-Dateien, um zu wissen, wohin ich Ajax-Anfragen senden soll.
Ist das in Ordnung? Ich weiß nicht, ob das eine schlechte Praxis ist, oder ob es klug ist, alle URLs so zu veröffentlichen...
Ich hoffe, dass sich jemand mit Erfahrung einmischt, wenn dies aus irgendeinem Grund dumm ist...