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",
    ....
})