js请求服务器文件乱码

摘抄

背景:

在编码格式为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: ...
})


作者:春困秋乏冬眠夏打盹
链接:https://www.jianshu.com/p/0504bc513a83
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/screes/p/13407962.html