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: ...
})

你可能感兴趣的:(js请求服务器文件乱码)