2013-07-19 12 views
12

Ho bisogno di ottenere url sul middleware del server (usando express.js). Io uso req.url ma quando url parte da /#some/url req.url rendimenti / ...get url after "#" nella richiesta middleware express.js

Lo stesso con req.path ..

c'è un modo per ottenere l'URL dopo # in express.js?

+0

possibile duplicato di [Come arrivare URL cancelletto (#) dal lato server] (http://stackoverflow.com/questions/317760/how-to-get-url-hash-from-server-side) –

+2

C'è una buona spiegazione qui http://stackoverflow.com/questions/3664257/why-the-hash-part-of-the-url-is-not-in-the-server-side – Guidone

+0

Il # -part è non trasferito al server. –

risposta

-1

utilizzare il built-in urlmodule che è disponibile in Node.js per analizzare l'URL e creare un urlObject. Questo avrà una proprietà frammento hash contenente il frammento hash desiderato.

const url = require('url') 
const urlObj = url.parse(req.url) 
console.log(urlObj.hash) // #some/url 
+2

A meno che la parte '' 'non sia trasferita al server. – zerkms

4

No. La parte dell'URL a partire con il simbolo # non viene mai inviato al server.

Il simbolo # in un URL è quello di introdurre fragment identifier. Questo è usato per collegare a una parte specifica della pagina. Se un browser carica /#some/url, carica effettivamente / e salta all'elemento HTML con id="some/url" (se presente). Questo identificatore di frammento è rilevante solo per il browser, quindi non viene inviato con la richiesta HTTP.

Quello che però possibile fare, sta utilizzando lato client Javascript per leggere il valore di window.location.hash e inviarlo al server utilizzando un XMLHttpRequest. (See other Stack Overflow post.)