同様にURIでRESTサービスを実行しています
ローカルホスト/1.0/json/ホスト/:リスト/
ここで、:list は検索するパラメーターです。対応する PHP 関数 (Tonic を使用)
public function get($list) {
$list = urldecode($list);
$list = mysql_real_escape_string($list);
提供された入力をデコードしてエスケープしています。これは、入力が実際にエンコードされる必要がない限り機能します。
対応する js アプリケーションは、encodeURIcomponent を使用して、入力ボックスで行われた入力をエンコードします。
var selectedList = encodeURIComponent($('#SelectList').val());
前述の REST リソースに対して jQuery.get を起動します。
$.get("http://localhost/rest/1.0/json/host/"+ selectedList + "/", function(data) {
入力ボックスで「923/50」などの入力が選択されている場合、パラメータは適切にエンコードされています
「localhost/rest/1.0/json/host/923%2F05/」の XHR
しかし、このパラメーターに接続されているレコードをデータベースから取得することはまだ不可能です。私はいつも404を取得します。したがって、「/」のような文字をエンコードすることはできないと思います。
これを解決するにはどうすればよいですか?