Ajax agent, automatically judge character encoding _ajax related

Source: Internet
Author: User
Because Ajax has problems with Cross-domain access, the best way to do this is to act as an agent. wrote an agent program and experience
In order to do Ajax agent, studied the server-side XMLHTTP and the client's Ajax in the XMLHTTP made a comparison, the background code is ASP's
Server-side XMLHTTP is the ASP thief program, I changed the code to JavaScript.
1. XMLHTTP on the server side. Open ("Get", Url,false) asynchronous must be closed, and the client's asynchronous is open, which is well understood.
2. XMLHTTP on the server side. Responsebody here with responsebody instead of ResponseText or responsexml, at first I was using responsetext, but in the function

BYTESTOBSTR conversion encoding When prompted error, after comparison found that other ASP thieves code in the program are responsebody, analysis, found that the body returned to the binary data and

Do not return characters or DOM objects like ResponseText or Responsexml.
Introduction to ASP proxy functions of Ajax
Send_request (URL), URL is address
The server-side code follows with automatic judgment of all character encodings, tested Japanese Korean traditional
Copy Code code as follows:

<% @LANGUAGE = "JAVASCRIPT" codepage= "65001"%>
<! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" "HTTP://WWW.W3.ORG/TR/HTML4/LOOSE.DTD" >
<meta http-equiv= "Content-type" content= "text/html; Charset=utf-8 ">
<title>XMLHTTP</title>
<%
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) {
Automatic Judgment Coding Start
var charresult = http_request. Responsetext.match (/charset= (\s+) \ ">/i);
if (Charresult!= null) {
var Cset = charresult[1];
}else{cset = "gb2312"}//is gb2312 encoded for Web sites that are not available and can be changed by itself

Automatic Judgment Coding End
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>

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.