GWT
アプリケーションでは、Window
を開き、クエリパラメータを含むurl
を渡そうとしています。 1つのパラメータの名前はdeg_test
なので、形式化されたURLはhttp://localhost:8888/mymodule/search?param1=value1¶m2=value2°_test=123
のようになります。予想通りChrome
でIE 11のGWT Window.openがクエリパラメータを誤って解釈する&deg = 123
とFirefox
ウィンドウは、しかしIE 11
に°_
部分が°
に誤解されて開き、それが度記号(º)に変換され、URLを破ります!
サンプルコード:
String query = "?param1=value1¶m2=value2°_test=123";
com.google.gwt.user.client.Window.open("http://localhost:8888/mymodule/search"
+ URL.encode(query), "_blank", "resizable=yes"
IEウィンドウのURL:http://localhost:8888/mymodule/search?param1=value1¶m2=value2°_test=123
私が代わりにURL.encode
両方?
と&
のURL.encodeQueryString
方法を使用する場合は、符号化され、サーバが404
ありがとうございます!確かに提案された回避策は動作しますが、実際のアプリケーションでは、クエリパラメータとして任意に追加される複数の "deg _..."パラメータがあり、最終的には問題を解決できません。私はあなたの答えをupvoteしますが、私は解決策としてそれを受け入れることはできません恐れています。 – pleft
実際にあなたの他の質問へのリンクは、私の問題を解決するために私を導きました。多くのおかげで、正しい答えとしてこれをマーク! – pleft