2013-09-05 7 views
6

Io uso Spring MVC e Javascript/ajax. Ho un problema con il modo in cui i miei script ajax si riferiscono a una risorsa lato server.Come evitare l'hard-coding del percorso di contesto dell'applicazione negli script js/ajax

Dire che ho due pagine che hanno bisogno di utilizzare la stessa risorsa lato server tramite ajax:

l'URL della prima pagina è:

  • /myapp/advertisement/28/edit
  • /myapp/signup

Dire la risorsa sul lato server che il mio script ajax bisogno di usare è:

  • /myapp/geolocation/addressAutocomplete

A partire da ora, ho hard-coded il percorso del contesto dell'applicazione cioè /myapp nel mio script ajax.

Se e quando il percorso del contesto dell'applicazione cambia, è necessario aggiornare è su tutti i miei script.

Esiste una soluzione?

risposta

6

Nella pagina HTML che include lo script è possibile inserire un tag HTML base che punta al contesto. Vedere la risposta a How to get domain URL and application name?

E si può leggere il tag base a http://www.w3schools.com/tags/tag_base.asp in cui si afferma The <base> tag specifies the base URL/target for all relative URLs in a document.

Prima di decidere se utilizzare o meno questo tag, può essere risposte lettura vale la pena di Is it recommended to use the <base> html tag?

6

Puoi utilizzare $.ajaxPrefilter() per anteporre il percorso contesto a tutte le richieste AJAX jQuery.

Può essere configurato nell'elemento <script> delle pagine, dove è disponibile il valore del percorso di contesto (ad esempio ${pageContext.request.contextPath} in JSP).

Problemi correlati