国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 凉山| 本溪市| 安乡县| 富顺县| 仁寿县| 双牌县| 滦平县| 镇远县| 托克托县| 巴楚县| 长治县| 金川县| 鹤岗市| 岑巩县| 柯坪县| 张掖市| 临猗县| 都安| 香河县| 双江| 基隆市| 蓬溪县| 衡阳县| 武安市| 游戏| 永平县| 绥中县| 麦盖提县| 仁怀市| 布尔津县| 隆德县| 开阳县| 遂溪县| 大邑县| 塔河县| 山阴县| 策勒县| 清徐县| 五家渠市| 怀仁县| 石景山区|