用js来解决ajax读取页面乱码
用js来解决ajax读取页面乱码
发布时间:2016-12-30 来源:查字典编辑
摘要:例子:rsajax.js:复制代码代码如下:varhttp_request=false;functionmakePOSTRequest(ur...

例子:

rsajax.js:

复制代码 代码如下:

var http_request = false;

function makePOSTRequest(url, parameters) {

http_request = false;

if (window.XMLHttpRequest) {

http_request = new XMLHttpRequest();

if (http_request.overrideMimeType) {

http_request.overrideMimeType('text/html');

}

} else if (window.ActiveXObject) {

try {

http_request = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

http_request = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {}

}

}

if (!http_request) {

alert('Cannot create XMLHTTP instance');

return false;

}

http_request.onreadystatechange = alertContents;

http_request.open('POST', url, true);

http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

//http_request.setRequestHeader("Content-Type","application/text/html; charset:utf-8");

http_request.setRequestHeader("Content-length", parameters.length);

http_request.setRequestHeader("Connection", "close");

if(!Sys.ie){

http_request.overrideMimeType("text/html;charset=gb2312");

}

http_request.send(parameters);

}

function alertContents() {

if (http_request.readyState == 4) {

if (http_request.status == 200) {

if(Sys.ie){

result = http_request.responseBody;

}

else

{

result = http_request.responseText;

}

//newresult=result.replace(/[^u0000-u00FF]/g,function($0){return escape($0).replace(/(%u)(w{4})/gi,"")});

//newreslt=unescape(result.replace(/&#x/g,'%u').replace(/;/g,'')); //utf-8和汉字互转,不需要了

document.getElementById('waiting').innerHTML = '';

if(Sys.ie){

document.getElementById('showresults').innerHTML =gb2utf8(result); }

else{

document.getElementById('showresults').innerHTML =result;

}

} else {

alert('There was a problem with the request.');

}

}else{

document.getElementById('waiting').innerHTML = '<img src="loading.gif">';}

}

function get(obj) {

//var poststr = "accounts=" + encodeURI( document.getElementById("accounts").value );

makePOSTRequest('y.htm', '');

}

//ie引入一个杂交函数,nndx

function gb2utf8(data){

var glbEncode = [];

gb2utf8_data = data;

execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");

var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");

t=t.split("@");

var i=0,j=t.length,k;

while(++i<j) {

k=t[i].substring(0,4);

if(!glbEncode[k]) {

gb2utf8_char = eval("0x"+k);

execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript");

glbEncode[k]=escape(gb2utf8_char).substring(1,6);

}

t[i]=glbEncode[k]+t[i].substring(4);

}

gb2utf8_data = gb2utf8_char = null;

return unescape(t.join("%"));

}

var Sys = {};

var ua = navigator.userAgent.toLowerCase();

if (window.ActiveXObject)

Sys.ie = ua.match(/msie ([d.]+)/)[1]

else if (document.getBoxObjectFor)

Sys.firefox = ua.match(/firefox/([d.]+)/)[1]

else if (window.MessageEvent && !document.getBoxObjectFor)

Sys.chrome = ua.match(/chrome/([d.]+)/)[1]

else if (window.opera)

Sys.opera = ua.match(/opera.([d.]+)/)[1]

else if (window.openDatabase)

Sys.safari = ua.match(/version/([d.]+)/)[1];

index.php

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=gb2312" />

<title></title>

<script type="text/javascript" language="javascript" src="rsajax.js"></script>

<HEAD>

</head>

<body>

<div align="center">

<input name="acctform" id="acctform" type=button>

<div align="center">

<div id="waiting"></div>

<p>

<div id="showresults"></div>

</div>

<BR>

<body></html>

y.htm

我们大家一起来,嘿嘿

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类