非常に単純な ajax 名の検索では、クライアント Web ページからサーバー (Tomcat 5.5、Java 5) に ID を送信し、データベースで検索して文字列を返します。これは、javascript 変数に割り当てられます。クライアント (そして表示されます)。
値を受け取る JavaScript コードはかなり標準的です。
//client code - javascript
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4) {
var result = xmlHttp.responseText;
alert(result);
...
}
...
}
文字列を返すために、私はもともとサーバーにこれを持っていました:
//server code - java
myString = "...";
out.write(myString.getBytes("UTF-8"));
安全でない場合、これは完全に機能しました。後で、次のように置き換えました。
import org.apache.commons.lang.StringEscapeUtils;
...
myString = "...";
out.write(StringEscapeUtils.escapeJavaScript(myString).getBytes("UTF-8"));
ただし、より安全ですが、結果の文字列に「ñ」などの特殊文字が含まれていると、正しく表示されません。
たとえば、次を使用します。
escapeJavaScript("años").getBytes("UTF-8");
送信:
an\u00F1os
クライアントに。
質問: Javascript で結果の文字列を解析する簡単な方法はありますか、またはこの問題を防ぐ Java で使用できる別のエスケープ関数はありますか?