2016-10-24 13 views
0

現在、AngularJS 1で検索機能を作成しています.JSのフロントエンドとAPI間の通信にRestrictionを使用しています。AngularJS 1 Restangular GET stripping#

しかし、特にAngularJSやRestangularは、私の要求から特定の文字を除外していますか?次のように

私はRestangularを使用してGETリクエストをしています:

Restangular.all( '詳細') {//など(detail_id).then(機能(detailResult)を取得...

。 detail_idに設定されている場合

は、しかし、これは動作します:2019 が、detail_idは次のように設定されている場合:2019#1

その後Restangular(私は仮定)を自動的#1を取り除き、私はこれを上の表示されませんサーバ側。

私はここで間違いを犯しているのですが、これはRestangularでリクエストを取得するための制限ですか、代わりにこれが意図したとおりに動作していて、何か逃しましたか?

すべてのヘルプは、これは仕様によるものです おかげ

答えて

1

を高く評価しています。 #の後の部分はfragmentと呼ばれ、クライアント側でのみ使用されるはずであるため、サーバーに送信されることはありません。異なったURIの残りの部分よりもWikipedia's article on the subject:

フラグメント識別子機能毎

:#が実際にある場合、すなわち、その処理は、Webサーバ

から無参加して独占的にクライアント側でidの一部です。このようにパラメータをエンコードする必要があります。

Restangular.all('details').get(encodeURIComponent(detail_id)).then(function(detailResult) { // etc... 
+0

ありがとうございました!私はおそらくparamをエンコードしてURLをデコードしたり、ポストリクエストを使用したりします。 – liamjnorman

+0

それがあなたの問題を解決すれば教えてください – fmello

+0

完璧に感謝しました!フラグメント識別子について知らなかった! – liamjnorman