js请求服务器文件乱码
2017-12-15 本文已影响3人
春困秋乏冬眠夏打盹
背景:
在编码格式为utf-8的页面中,用js获取服务器上编码格式为GBK的文件时,获取到的内容会显示乱码。
overrideMimeType
该方法用来指定服务器返回数据的MIME类型。该方法必须在 send()
之前调用。
比如,我的页面是utf-8编码,我需要从服务器获取一个GBK编码格式的xml文件:
在ajax请求之前,需要设置一下编码格式:xhr.overrideMimeType("text/xml;charset=utf-8");
需要注意两点:
1.需要将文件类型改为text/xml
(修改文件类型也可以通过修改dataType:"xml"
实现)
2.需要将文件编码改为utf-8
$.ajax({
url: '...',
method: 'GET',
// dataType: "xml",
beforeSend: function(xhr) {
xhr.overrideMimeType("text/xml;charset=utf-8");
},
success: ...
})