11

AJAXを使用してstrutsアクションを実行していますが、すべて問題ありませんが、Firefoxに問題があります。URLのパラメーターをリクエストパラメーターとして渡し、そのパラメーターの最後にハッシュ(#)記号が含まれている場合、firefoxはすべてを削除します。そのシンボルの後に、そのパラメータをそれなしでアクションに送信します。

たとえば、Firefoxでtest123#abcdに合格した場合、私の要件には望ましくないtest123#abcdとは対照的に、アクションクラスでtest123のみを取得しています。IEの場合は完全に機能しています。抽出できる方法はありますか。 Firefoxの#記号を含む完全なパラメータ。

Javaアクションコードも投稿する必要がある場合はお知らせください。ありがとうございます。

JSスニペット

var valuePassword=test123#abcd;

    var url = "/test/ChangePwdAjax.do?newPass="+valuePassword;
            var xmlHTTP = getXMLHTTPRequest();
4

2 に答える 2

20

使用する

var url = "/test/ChangePwdAjax.do?newPass="+ encodeURIComponent(valuePassword);

valuePasswordこれにより、URLでクエリ文字列として渡すことができる有効なURLコンポーネントにエンコードされます

反対側ではdecodeURIComponent、エンコードされた文字列から値を取得するために使用する必要があります

var value = decodeURIComponent(valuePasswordPassed);

これについてもっと知るにはここに行く

于 2012-11-05T09:03:50.310 に答える
1

データを変更するときは、httpPOSTリクエストを実行する必要があります。GETリクエストではありません。これにより、パスワードをエンコードしなくても問題が自動的に解決されます。

xmlhttp.open("POST", "/test/ChangePwdAjax.do", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("newPass=" + valuePassword);
于 2012-11-05T09:13:00.610 に答える