Firefox v15.0.1のローカルサイトで要求しているURIの以下の例がありますが、簡潔にするためにホスト名を削除しました。
/search?cat=ngb%26b
いくつかのページングリンクは、次のようなhrefで結果のページに表示されます
?p=2&cat=ngb%26b
https://github.com/browserstate/History.js/を使用しているクリックイベントで以下の履歴リクエストを実行します。これは、私が知っている状態からの状態変化のためにHTML5履歴を使用します。
History.getState().url;
url History.getState()。urlは私に以下を与えます、これはクリックイベントで非同期関数に渡されます:
/search?cat=ngb&b&p=2
そして、履歴はブラウザのURIをこれに合わせて調整しています
/search?cat=ngb&b=undefined&p=2
「cat」パラメータが正しくないため、非同期アクションが失敗します。
getState()。urlの結果全体をURLエンコードすることはできません。これは、正しくないためです。
このような状況に直面したときにやらなければならないことが欠けていることはありますか?
どんな助けでもいただければ幸いです。ありがとう。
更新: 私は現在これをデバッグしていて、getState()関数が返すオブジェクトを調べています。正しくエンコードされたパラメーターを含む「data」オブジェクトプロパティがあります。
スピンして、ajaxリクエストを行う関数に渡すURLに追加することもできますが(.urlプロパティを渡す代わりに)、Historyがハッシュを処理することを意図している場合、これは良い考えとは思えません。 HTML4のURLフォールバック。