我正在尝试从 Javascript 应用程序调用 Hessian Web 服务,但在解析响应时遇到问题,因为 jQuery 将响应视为文本并剥离它的第一个字节。在我的研究中,我发现您需要将字符集设置为'charset=x-user-defined'以便浏览器保留我的字节。但是,根据 ajax 文档:
向服务器发送数据
默认情况下,Ajax 请求使用 GET HTTP 方法发送。如果需要 POST 方法,可以通过设置 type 选项的值来指定该方法。此选项影响数据选项的内容如何发送到服务器。根据 W3C XMLHTTPRequest 标准,POST 数据将始终使用 UTF-8 字符集传输到服务器。
事实上,无论我使用什么设置,字符集都不会改变。我已经分别尝试了以下所有方法,但没有成功
$.ajax({
type : 'POST',
url : url,
timeout : 3000,
data : parameters,
contentType : "x-application/hessian; charset=x-user-defined'",
mimeType: 'text/plain; charset=x-user-defined',
headers: {
Accept : "text/plain; charset=x-user-defined",
"Content-Type": "text/plain; charset=x-user-defined"
},
beforeSend : function(xhr) {
xhr.overrideMimeType("text/plain; charset=x-user-defined");
}
})
我还试图弄乱 jQuery 中定义的数据转换器和自定义内容类型,但没有成功。
看来,按照标准,我将无法做到这一点。它适用于 GET 但不适用于 POST,并且 Hessian 协议需要 POST。
你有什么想法?还是我需要从头开始构建我的 XHR 方法?