Ajax| Code | program 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 this Code] CODE:
<% @LANGUAGE = "JAVASCRIPT" codepage= "65001"%>
XMLHTTP
<%
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);
}
%>
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.