2013-07-19 14 views
12

サーバミドルウェア(express.jsを使用)にURLを取得する必要があります。私はreq.url使用しますが、URLが/#some/url req.url戻り/ ...express.jsミドルウェアリクエストで "#"の後にURLを取得

req.pathと同じ...から開始したときに

はexpress.jsで #後のURLを取得する方法はありますか?

+0

[サーバー側からURLハッシュ(#)を取得する方法](http://stackoverflow.com/questions/317760/how-to-get-url-hash-from-server-side ) –

+2

ここに良い説明がありますhttp://stackoverflow.com/questions/3664257/why-the-hash-part-of-the-url-is-not-in-the-server-side – Guidone

+0

#-part is isサーバーに転送されません。 –

答えて

-1

URLを解析してurlObjectを作成するには、Node.jsに用意されているurlを使用します。これには、希望するハッシュフラグメントを含むhashフラグメントプロパティがあります。

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

'#' -partがサーバに転送されていない限り。 – zerkms

4

#記号で始まるURLの一部がサーバーに送信されることはありません。

#のシンボルは、fragment identifierを紹介するものです。これは、ページの特定の部分にリンクするために使用されます。ブラウザが/#some/urlをロードすると、効果的に/がロードされ、id="some/url"(存在する場合)というHTML要素にスキップされます。これは、フラグメント識別子がブラウザにのみ関連するため、HTTPリクエストとともに送信されません。あなたはしかし、を行うことができますどのような

window.location.hashの値を読み出し、XMLHttpRequestのを使用してサーバに送信するクライアント側のJavaScriptを使用しています。 (See other Stack Overflow post.

関連する問題