1

現在、AJAXリクエストを使用してサーバー側のエンドポイントに値を渡そうとしています。URLに10進値を渡そうとするまで、すべて正常に機能します。私はそれを理解しています。文字はURLの予約文字であり、AJAXリクエストで10進値を渡す方法を知りたいと思っています。

私の現在のエンドポイントは次のようなものです。/ domain / some-url /?value1 = 5&value2=2.3上記のURLは404になります。

value2を整数または文字列に変更すると、ファイルが機能します。例は/domain/ some-url /?value1 = 5&value2=2です。上記のURLから正常な応答を取得します。

この状況に対処する標準的な方法はありますか?

4

5 に答える 5

3

いいえ、.URLの予約文字ではありません– https://www.rfc-editor.org/rfc/rfc3986#section-2.3を参照してください–したがって、URLエンコードされているかどうかに違いはありません。

代わりに、サーバー側スクリプトがその引数でドットを受け入れないことが問題のように思えますが、詳細がないと理由を判断するのは困難です。

于 2012-05-05T07:01:31.973 に答える
3

あなたの問題はあなたのサーバーにあるよう.です、予約されていません。私は実際にブラウザでencodeURIを使用しようとしました:

> encodeURI("/domain/some-url/?value1=5&value2=2.3")
"/domain/some-url/?value1=5&value2=2.3"

結果は変わりません。それを試してみてください

于 2012-05-05T07:02:47.030 に答える
2

それ自体はドットではありません。ドットがURLの予約文字になるのはなぜですか?その場合、などを使用することはできません/img/someimg.jpg。サーバーがリクエストを処理する方法と関係がある必要があります。

確かに、私は自分のサーバー側のテストスクリプト@の1つを使用してこれをテストしましhttp://testbed.nicon.nl/v8test/json.xjs?testone=0.234&test2=4.56た。スクリプトが検出され、正常に動作しています。小数点以下は問題ありません。

于 2012-05-05T07:08:59.437 に答える
0

ドメイン/サーバーの.htaccessまたはルーティングスクリプトを確認して、を許可してください。パラメータで;

そうでなければ

/ domain / some-url /?value1 = 5&value2 = 2.3

URLに10進値を渡す正しい方法です。

于 2012-10-10T12:37:08.837 に答える
-2

ajaxリクエストで以下のように引数を送信してみてください。

data: { value1:5, value2: 2.3 }
于 2012-05-05T06:55:27.827 に答える