dojo.xhrPost 错误地将特殊字符传递给服务器
dojo.xhrPost passing special characters incorrectly to server
我们发现基于 unix 的文件名通过基于 windows 的 Web 浏览器传递到我们的 windows 服务器时出错。 dojo.xhrPost 默认为 ISO-8859-1 字符编码。这将导致服务器收到格式错误的文件名,其中 ± 将替换为 ±。
尽管可以将基于 java 的解决方案(包括过滤器)添加到 Tomcat,但我们希望找到一种方法在我们的 JavaScript 中更正此问题。
答案如下。
解决方案是强制 xhrPost 传递正确的 contentType header 信息,包括 utf-8 字符集说明符。
dojo.xhrPost{
url: resURL,
handleAs: "xml",
load: callBackResetForm,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
....
})
我们发现基于 unix 的文件名通过基于 windows 的 Web 浏览器传递到我们的 windows 服务器时出错。 dojo.xhrPost 默认为 ISO-8859-1 字符编码。这将导致服务器收到格式错误的文件名,其中 ± 将替换为 ±。
尽管可以将基于 java 的解决方案(包括过滤器)添加到 Tomcat,但我们希望找到一种方法在我们的 JavaScript 中更正此问题。
答案如下。
解决方案是强制 xhrPost 传递正确的 contentType header 信息,包括 utf-8 字符集说明符。
dojo.xhrPost{
url: resURL,
handleAs: "xml",
load: callBackResetForm,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
....
})