1

Java サーバーでエンコードしてから JavaScript でデコードする URL があります。Javaでパラメータで送信した文字列を取得しようとしています。フォーム検証機能からのエラーメッセージです。

私はそのようにします(サーバー側。Worker.doValidateForm()は文字列を返します):

response.sendRedirect(URLEncoder.encode("form.html?" + Worker.doValidateForm(), "ISO-8859-1"));

次に、私のjavascriptで、私はそれを行います:

function retrieveParam() {
    var error = window.location.search;

    decodeURIComponent(error);
    if(error)
        alert(error);
}

もちろん、うまくいきません。私が推測する同じエンコーディングではありません。

私の質問は次のとおりです。JavaでURLをjavascriptでデコードするには、どの方法を使用できますか?

4

2 に答える 2

2

大丈夫です !私は解決策を見つけました。

Java を使用したサーバー側:

URI uri = null;
try {
    uri = new URI("http", "localhost:8080", "/PrizeWheel/form.html", Worker.doValidateForm(), null);
} catch (URISyntaxException e) {
    this.log.error("class Worker / method doPost:", e); // Just writing the error in my log file
}
String url = uri.toASCIIString();
response.sendRedirect(url);

Javascript (リダイレクトされたページのオンロードで呼び出される関数) では:

function retrieveParam() {
    var error = decodeURI(window.location.search).substring(1);

    if(error)
        alert(error);
}
于 2012-09-05T13:15:37.787 に答える
0

URLをエンコードするためにURLEncoderを使用するのではなく、フォームデータをapplication /x-www-form-urlencodedMIME形式にエンコードするために使用されていました。代わりにURIEncoderを使用します。http://contextroot.blogspot.fi/2012/04/encoding-urls-in-java-is-quite-trivial.htmlを参照してください。

于 2012-09-05T07:10:30.923 に答える