国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

ajax代理程序自動判斷字符編碼

2024-09-01 08:26:09
字體:
供稿:網(wǎng)友

由于ajax在跨域的訪問上有問題,目前最好的方法是做代理.寫了個代理程序和心得。

為了做ajax的代理,研究了下服務器端的xmlhttp并和客戶端的ajax中的xmlhttp做了個比較,后臺代碼是asp的。

服務器端的xmlhttp也就是asp小偷程序,我把代碼改成了javascript。

1、在服務器端的xmlhttp.Open("GET",url,false)異步必須是關閉的,而客戶端的異步是打開的,這個很好理解。

2、在服務器端的xmlhttp.Responsebody 這里用的是Responsebody而不是ResponseText或ResponseXml,一開始我是用ResponseText,但在函數(shù)bytesToBSTR轉(zhuǎn)換編碼的時候提示錯誤,經(jīng)過比較發(fā)現(xiàn)其他的asp小偷程序里的代碼都是Responsebody,分析后,發(fā)現(xiàn)body返回來的是二進制數(shù)據(jù)而不是像ResponseText或ResponseXml那樣返回字符或dom對象。

ajax的asp代理函數(shù)介紹:

send_request(url) ,url為地址

服務器端代碼如下帶自動判斷所有字符編碼,已測試 日語 韓語 繁體:

以下為引用的內(nèi)容:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>XMLHTTP</title>
</head>
<%

Server.ScriptTimeout=9999999;
function send_request(url) {
var codedtext;
http_request = Server.CreateObject("Microsoft.XMLHTTP");
http_request.Open("GET",url,false);
http_request.Send(null);
if (http_request.ReadyState == 4){
//自動判斷編碼開始
var charresult = http_request.ResponseText.match(/CharSet=(/S )/">/i);
if (charresult != null){
var Cset = charresult[1];
}else{Cset = "gb2312"}//對獲取不到的網(wǎng)站采用gb2312編碼,可自行更改

//自動判斷編碼結(jié)束
codedtext = bytesToBSTR(http_request.Responsebody,Cset);
}else{
codedtext = "Erro";
}
return(codedtext);
}

function bytesToBSTR(body,Cset){
var objstream;
objstream = Server.CreateObject("Adodb.Stream");
objstream.Type = 1;
objstream.Mode = 3;
objstream.Open();
objstream.Write(body);
objstream.Position = 0;
objstream.Type = 2;
objstream.Charset = Cset;
bytesToBSTR = objstream.Readtext;
objstream.Close;
return(bytesToBSTR);
}

%>
<body>
<% Response.Write(send_request("http://www.daum.net")) %>
</body>
</html>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉定区| 丽江市| 长沙县| 威宁| 禹城市| 新津县| 利辛县| 高州市| 台中县| 洪泽县| 平度市| 开封县| 连城县| 林甸县| 商水县| 兰西县| 晋宁县| 申扎县| 信阳市| 乐东| 思南县| 分宜县| 斗六市| 新昌县| 边坝县| 丰原市| 鹤岗市| 谷城县| 洪江市| 台北市| 尚志市| 法库县| 蒙城县| 泊头市| 乌海市| 乌拉特后旗| 郎溪县| 文山县| 东城区| 枝江市| 新民市|