1
//
创建 XMLHTTPREQUEST 的实例
2
this
.__createRequestEntity
=
function
()
3
{
4
var req;
5
var msxml_progid = ['MSXML2.XMLHTTP.8.0', 'MSXML2.XMLHTTP.7.0', 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP.2.6', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
6
try
7
{
8
req = new XMLHttpRequest();
9
}
10
catch (e)
11
{
12
for(var i = 0; i < msxml_progid.length; ++i)
13
{
14
try
15
{
16
req = new ActiveXObject(msxml_progid[i]);
17
break;
18
}
19
catch (e)
{}
20
}
21
}
22
return req;
23
}
24
//
创建 XMLHTTPREQUEST 的实例
2
this
.__createRequestEntity
=
function
()3

{4
var req;5
var msxml_progid = ['MSXML2.XMLHTTP.8.0', 'MSXML2.XMLHTTP.7.0', 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP.2.6', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];6
try7

{8
req = new XMLHttpRequest();9
}10
catch (e)11

{12
for(var i = 0; i < msxml_progid.length; ++i)13

{14
try15

{16
req = new ActiveXObject(msxml_progid[i]);17
break;18
}19

catch (e)
{}20
}21
}22
return req;23
}
24
上面是创建 XMLHTTPREQUEST 的一段 脚本, 逻辑是创建客户端IE的高版本的XMLHTTP,但是,在实际使用中发现,某些个别用户的页面显示,中文全是乱码『 ENCODING相关的都是GB2312了』,为了这个调了N久无果。
最后,突然想起这些电脑使用另一个早期的ASP开发的 无刷新 联动程序很正常,于是忽然想到了XMLHTTP的版本问题,将上面的代码改为:
1
//
创建 XMLHTTPREQUEST 的实例
2
this
.__createRequestEntity
=
function
()
3
{
4
var req;
5
var msxml_progid = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
6
try
7
{
8
req = new XMLHttpRequest();
9
}
10
catch (e)
11
{
12
for(var i = 0; i < msxml_progid.length; ++i)
13
{
14
try
15
{
16
req = new ActiveXObject(msxml_progid[i]);
17
break;
18
}
19
catch (e)
{}
20
}
21
}
22
return req;
23
}
24
//
创建 XMLHTTPREQUEST 的实例
2
this
.__createRequestEntity
=
function
()3

{4
var req;5
var msxml_progid = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];6
try7

{8
req = new XMLHttpRequest();9
}10
catch (e)11

{12
for(var i = 0; i < msxml_progid.length; ++i)13

{14
try15

{16
req = new ActiveXObject(msxml_progid[i]);17
break;18
}19

catch (e)
{}20
}21
}22
return req;23
}
24
测试结果,一切OK, 所有PC测试通过。
唉, 不明白 microsoft 怎么搞的, 还是我自己脑子有问题啊!
本文介绍了一种解决XMLHttpRequest请求导致的中文乱码问题的方法。通过对XMLHttpRequest实例创建过程的调整,确保了不同版本浏览器的兼容性,并解决了特定环境下出现的中文乱码问题。
1053

被折叠的 条评论
为什么被折叠?



