私はxhr呼び出しでいくつかの入力データを検証する必要があるイタリア語のWebサイトをコーディングしています。 AJAXリクエストのこのような(私はjQueryの1.3.2を使用しています)のための私のコード:IEの別のJQueryエンコーディング問題
$.ajaxSetup({
type: "POST",
timeout: 10000,
contentType: "application/x-www-form-urlencoded; charset=iso-8859-1"
});
$.ajax({
url: "ajaxvalidate.do",
data: {field:controlInfo.field,value:controlInfo.fieldValue},
dataType: "json",
complete: function() {
//
},
success: function(msg) {
handleAsyncMsg(controlInfo, msg, closureOnError);
},
error: function(xhr, status, e) {
showException(controlInfo.id, status);
}
});
バックエンドでは、私はXHRを処理するためのJavaのStrutsアクションを持っています。私は、データ(特にアクセント記号付きの文字)が同期送信で正しく送信されるように、ページ内のエンコーディングISO-8859-1を使用する必要があります。
すべてがFirefoxの魅力のように機能していますが、アクセント付きの文字でIE 7の非同期ポストを処理する必要があるときは、問題があります:常に無効な文字(utf-8かもしれませんか? EG私はààààààààààの形式で入力し、私の要求にはこの値が入ります:ââ、ââ、¬ 要求文字セットがISO-8859-1に正しく設定されているため、サーバーが依然としてフォーム値を正しく解析していない理由を理解できません。
これは、すべてのリクエストヘッダおよびエラーのログサンプル(サーバが古いBEA WebLogicの8.1'S)である。
Encoding: ISO-8859-1
Header: x-requested-with - Value: XMLHttpRequest
Header: Accept-Language - Value: it
Header: Referer - Value: https://10.172.14.36:7002/reg-docroot/conv/starttim.do
Header: Accept - Value: application/json, text/javascript
Header: Content-Type - Value: application/x-www-form-urlencoded; charset=iso-8859-1
Header: UA-CPU - Value: x86
Header: Accept-Encoding - Value: gzip, deflate
Header: User-Agent - Value: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Header: Host - Value: 10.172.14.36:7002
Header: Content-Length - Value: 65
Header: Connection - Value: Keep-Alive
Header: Cache-Control - Value: no-cache
Header: Cookie - Value: JSESSIONID=JQJlNpVC86yTZJbcpt54wzt82TnkYmWYC5VLL2snt5Z8GTsQ1pLQ!1967684811
Attribute: javax.net.ssl.cipher_suite - Value: SSL_RSA_WITH_RC4_128_MD5
Attribute: javax.servlet.request.key-size - Value: 128
Attribute: javax.servlet.request.cipher_suite - Value: TLS_RSA_WITH_RC4_128_MD5
Attribute: javax.servlet.request.key_size - Value: 128
Attribute: weblogic.servlet.network_channel.port - Value: 7001
Attribute: weblogic.servlet.network_channel.sslport - Value: 7002
Attribute: org.apache.struts.action.MESSAGE - Value: [email protected]
Attribute: org.apache.struts.globals.ORIGINAL_URI_KEY - Value: /conv/ajaxvalidate.do
Attribute: errors - Value: [email protected]
Attribute: org.apache.struts.action.MODULE - Value: [email protected]
Attribute: weblogic.servlet.request.sslsession - Value: [email protected]
field: nome - value: Ã Ã Ã Ã Ã Ã Ã Ã - action: /endtim
ありがとうございました。私はページを変換しようとしますが、時間がかかります。 js encodeURI()を試してみましたが、うまくいきましたが、リクエスト・サーバー側から各フィールドを手動でデコードする必要がありました。私はutf-8にxhrを置くことも試みましたが、まだiso-8859-1のページがあり、うまくいくようです。本当に奇妙な.. –