そのため、フィルタリングの目的でデータを渡すために ajax リクエストを使用しています。
次に、history.js を使用して、URL を変更し、ブラウザに状態を追加して、戻る、進むなどを可能にします。このようにして、ajax リクエストまたは通常のリクエストでデータをフィルタリングできます。ここまでは順調ですね。
私の問題は、ajaxリクエストを通過するデータに配列があることです:
function updateContent(url, state) {
$.ajax({
type: 'GET',
data: {name: state.filter_name, num: state.filter_number,
data: state.filter_data, array: state.filter_array},
url: url,
success: function(msg) {
$('#ajax').html(msg);
}
});
}
これにより、次の URL にリクエストが送信されます。
http: //localhost/Project/Controller/?filter_array%5B%5D=1&filter_array%5B%5D=50&filter_array%5B%5D=70.
そして、このURLを history.pushstate に渡したい
jsenconde を使用して手動で URL を作成すると、URL は若干異なり、次のようになります。
http://localhost/Project/Controller/?filter_array=["1","50","70"]
よりクリーンですが、URL で [] を使用してはならないことをどこかで読みましたが、この方法を使用しても、2 種類の GET URL、ajax URL を取得します。filter_array%5B%5D=1&filter_array%5B%5D=50&filter_array%5B%5D=70.
および json url ?filter_array=["1","50","70"]
.
したがって、1 種類の GET URL だけを取得するソリューションが必要なので、同じ URL を ajax と通常のリクエストに使用できます。