2017-01-25 10 views
0

当社の新しいURL構造は、アプリケーションがそれに依存しますが、同時に、我々はまた、必要があるとして、私たちは、URLに#(ハッシュ記号)を維持する必要がありクエリ文字列および/#/ URLに

http://domain.com/#/test?utm_source=test&utm_medium=test

を下回るようなものですクエリーストリングが動作するが、URLに#とアプリケーション/サーバーが含まれていない場合でも、ブラウザーは要求からクエリーストリングをスキップしてしまうという問題があります。

答えて

0

あなたはそれを行うことはできません。ハッシュマーク#によって導入

https://en.wikipedia.org/wiki/Fragment_identifier フラグメント識別子は、ドキュメントのURLのオプションの最後の部分です。これは通常、その文書の一部を識別するために使用されます。一般的な構文は、RFC 3986で規定されています。URIのハッシュマーク区切り記号は、フラグメント識別子に属しません。

ソリューション:

  1. 省略このタグと、このルーティング場所で常にurldecode

このUsage of Hash(#) in URL

0

を読むと$ _GETのparamとして

  • 使用をハッシュタグを使用しますまず、それは動作しません。あなたができることの1つは、ページにjavascriptコードを入れて、& AJAXリクエストをAPIと比較して(必要なデータのみを返す)APIに伝えることです。擬似コードは、することができ

    window.onload = function(){ 
        if(window.location.hash == "you needed"){ 
        xhr(url_needed_with_json_or_xml); 
        } 
    } 
    

    注:欠点は、あなたがそうでなければ変更ハッシュベースのURLルーティングを行って、クライアント側jsにルートを維持する必要があるかもしれないです。

  • 関連する問題