問題タブ [query-string]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 空の QueryString パラメータ
問題
foo
asp.net を使用して、次の URL のクエリ文字列のパラメータを確認する適切な方法は何ですか? これは可能ですか?
私もチェックしようとしRequest["foo"]
ましたが、両方Request.QueryString["foo"]
を取得null
しました。List
また、コレクションの値をa に入力しようとしましたQueryString
が、以下で説明するように、値は含まれていません。
質問
値がないことは理解していますが、?Request["foo"]
ではなく空の文字列を返すべきではありません。null
値がなくてもクエリ文字列キーが存在するかどうかを調べる方法はありますか?
ノート
ここで、空のクエリ文字列パラメーターがRequest.QueryString.AllKeys
含まれていることがわかりました。null
[編集]
JamesとDreasが以下に述べているように、生の URL を解析するための正規表現は、最良の (そしておそらく唯一の) アプローチである可能性があります。
php - キーで連想配列を内破する最速の方法
連想配列を文字列に変換する高速な方法を探しています。一般的な構造はURLクエリ文字列のようなものですが、区切り文字をカスタマイズできるため&
、xhtmlリンクには''を使用でき、それ以外の場合は''を使用できます&
。
私の最初の傾向は使用することforeach
ですが、私のメソッドは1つのリクエストで何度も呼び出される可能性があるため、遅すぎるのではないかと心配しています。
より速い方法はありますか?
asp.net-mvc - ASP.NET MVC - 複数のクエリ文字列パラメーターをきれいな URL にマッピングする
私は、mvc の seo フレンドリーな URL の設計に少し固執しています....次の URL を例にとります: http://myapp/venues/resturants.aspx?location=central&orderBy=top-rated
私の mvc アプリでは、次のようにマッピングしました:
http://myapp/venues/list/resturants/central/top-rated
{controller}/{action}/{category}/{location}/{order}
唯一の問題は、場所と注文がオプションであることです...したがって、次のようなリクエストを送信できるはずです: http://myapp/venues/list/resturants/top-rated . これは、リクエストがコントローラーのアクションにヒットしたときに問題になることが判明し、位置パラメーターは自然に「最高評価」を獲得しました。
助言がありますか?明示的なクエリ文字列を使用して複数のパラメーターを処理することを検討していますが、SEO をあまり犠牲にしたくないので、これが本当に最後のオプションです。
このようなジレンマに陥った人はいますか? また、どのように対処しましたか?
前もって感謝します!
http - 辞書を HTTP GET クエリ文字列にエンコードするにはどうすればよいですか?
HTTP GET クエリ文字列は、キーと値のペアの順序付けられたシーケンスです。
特定のセマンティクスでは、次の辞書と同等です。
これは、要求されているページのブール値のプロパティに対してうまく機能します。
ID 2 の要素の展開を停止する場合は、expand
値からポップして、クエリ文字列を再度 URL コード化します。ただし、よりモーダルなプロパティ (3 つ以上の選択肢がある) がある場合は、次のような構造を表現する必要があります。
対応する ID キーの値は、既知の列挙の一部です。これをクエリ文字列にエンコードする最良の方法は何ですか? 次のような2つのタプルのシーケンスを使用することを考えています:
編集:慣習に関連する名前を知っておくとよいでしょう。何もないかもしれないことはわかっていますが、例の代わりに名前を使用して特定のことについて話すことができるのは素晴らしいことです. ありがとう!
model-view-controller - MVC では、ページネーション情報をパスまたはクエリ文字列に入れる必要がありますか?
パスで:
フォーマット: http://mydomain.com/ {category}/{subcategory}/{pageNumber}/{pageSize}
例: http://mydomain.com/books/thriller/3/25
クエリ文字列で:
フォーマット: http://mydomain.com/ {category}/{subcategory}? pageNumber={pageNumber}&pageSize={pageSize}
例: http://mydomain.com/books/thriller?pageNumber=3&pageSize=25
私はすべてをパス上に置くのが好きですが、それに関する私の問題は、最初の例で「本」と「スリラー」が何であるかが明らかである(または少なくともある程度明白である)一方で、「3」と「25」はかなり恣意的に見えることです対照的に。
MVCで何がどこに行くのかを判断するための標準的な方法はありますか、それとも本当に開発者次第ですか?
apache - Apache がクエリ文字列をデコードする URL になるのはなぜですか?
私の Web ホストはこれについて私を助けることを拒否したので、私はここの賢明な人々に「ブラックボックスのデバッグ」の助けを求めています。以下は、私が彼らに送ったものの編集版です。
私はdreamhostに2つの(とりわけ)ドメインを持っています:
1) thefigtrees.net 2) shouldivoteformccain.com
#1 で CGI スクリプトをホストすると、CGI スクリプトが実行されるまでに、QUERY_STRING 環境変数として渡された HTTP GET クエリ文字列が既に URL デコードされていることに気付きました。これは、標準の CGI ライブラリ (perl の CGI.pm など) がアンパサンドで分割し、文字列自体をデコードしようとすることを意味するため、問題です。これには 2 つの潜在的な問題があります。
1) 文字列は二重にデコードされるため、「%2525」などの値がスクリプトに送信されると、「%25」(1 回デコード) ではなく、単に「%」(2 回デコード) として扱われることになります。
2) (より一般的) 送信された値にアンパサンドがある場合、(適切に) %26 として送信されますが、QUERY_STRING env. 変数はすでに "&" にデコードされており、CGI ライブラリはそのアンパサンドでクエリ文字列を不適切に分割します。これは大問題です!
http://thefigtrees.net/test.cgiのスクリプトはこれを示しています。呼び出された環境変数をエコー バックします。ブラウザで次の場所に移動します。
http://thefigtrees.net/lee/test.cgi?x=y%26z
REQUEST_URI には x=y%26z (エンコードされていない) が正しく含まれていますが、QUERY_STRING には既に x=y&z にデコードされていることがわかります。ドメイン #2 ( http://www.shouldivoteformccain.com/test.cgi?x=y%26z ) でテストを繰り返すと、QUERY_STRING がデコードされないままであるため、CGI.pm が分割され、正しくデコードされることがわかります。
問題がないことを確認するために、両方の .htaccess ファイルを無効にしてみましたが、違いはありませんでした。
私の Web ホストは私を助けたがらないように見えるので、誰かがこれの潜在的な原因を推測できますか?
ありがとう、リー
javascript - JSON でクエリ文字列を表す
私はこのJavascriptデータを持っています:
HTTP ポスト リクエストとして渡すことができるように、それをどのように変換しますか?
実際の JSON データを渡したくありません。それをクリーンアップして、フォーマットされた HTTP パラメータとして渡したいのです。
編集
このようなものを使用してクライアント側でオブジェクトを解析できましたか?「回答済み」として署名する前に、もっと良いものを提案していただけませんか?
asp.net-mvc - ASP.NET MVC QueryString の既定値は、指定された値をオーバーライドしますか?
ASP.NET MVC Preview 5 を使用すると (これはベータ版でも試行されています)、ルートのクエリ文字列の既定値が、クエリ文字列で渡される値をオーバーライドするようです。再現は、次のようなコントローラーを作成することです。
ルートは次のようにマッピングされます。
次に、この相対 URI で呼び出します。
私が見るトレース出力は次のとおりです。
つまり、ルートに設定されたデフォルト値は、クエリ文字列で実際に指定されたかどうかに関係なく、常にメソッドに渡されます。クエリ文字列のデフォルトが削除された場合、つまりルートは次のようにマッピングされることに注意してください。
その後、コントローラーは期待どおりに動作し、値がパラメーター値として渡され、トレース出力が得られます。
これはバグのように見えますが、このようなバグが ASP.NET MVC フレームワークのベータ リリースにまだ残っている可能性があることは非常に驚くべきことです。デフォルトのクエリ文字列は厳密には難解な機能でもエッジ ケースの機能でもないためです。 、だからほぼ間違いなく私のせいです。私が間違っていることはありますか?
asp.net-2.0 - 代替クエリ文字列 C# (asp.net)
次のように渡されたクエリを使用する簡単で汚い方法はありますか:
domain.com/mypage.aspx/product/toycar/
以前に PHP で行ったことがありますが、これはページで行う必要があります (この例では)。
-- aspx ページとコード ビハインドにしかアクセスできず、asp.net 2 で作業する必要があります(3.5 を使用していればよかったのに) 。
php - クエリ文字列でスラッシュを受け入れるように Apache/PHP を構成するにはどうすればよいですか?
PHP を実行している 2 つの Apache サーバーがあります。クエリ文字列でスラッシュを受け入れ、予想される方法で PHP に渡します。次に例を示します。
動作し、PHP では次の式が true になります。
しかし、他のApache サーバーでは、同じ URL は403 Forbidden
エラーになります。クエリ文字列が適切に URL エスケープされている場合 (つまり、%2F
スラッシュの代わりに使用されている場合)、すべてが機能することに注意してください。
これを引き起こす Apache または PHP の構成には明らかに違いがありますが、何が原因なのかわかりません!
どちらの場合も、この形式の URL を拒否するのではなく、受け入れる必要があります。