手工使用 ajax:
var xmlhttp;
function verify()
{
if (window.XMLHttpRequest) {
//针对FireFox,Mozillar,Opera,Safari,IE7,IE8
xmlhttp = new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的BUG进行修正
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
//针对IE6,IE5.5,IE5
var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i = 0; i < activexName.length; i++) {
try{
//取出一个控件名进行创建,如果创建成功就终止循环
//如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch(e){
}
}
}
//确认XMLHTtpRequest对象创建成功
if (!xmlhttp) {
alert("XMLHttpRequest对象创建失败!!");
return;
}
xmlhttp.onreadystatechange = callback;
xmlhttp.open("GET","AJAXServer?name="+ userName,true);
/POST方式请求的代码
//xmlhttp.open("POST","AJAXServer",true);
//POST方式需要自己设置http的请求头
//xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//POST方式发送数据
//xmlhttp.send("name=" + userName);
xmlhttp.send(null);
}
function callback() {
//alert(xmlhttp.readyState);
//5。接收响应数据
//判断对象的状态是交互完成
if (xmlhttp.readyState == 4) {
//判断http的交互是否成功
if (xmlhttp.status == 200) {
//获取服务漆器端返回的数据
//获取服务器段输出的纯文本数据
var responseText = xmlhttp.responseText;
//将数据显示在页面上
//通过dom的方式找到div标签所对应的元素节点
var divNode = document.getElementById("result");
//设置元素节点中的html内容
divNode.innerHTML = responseText;
} else {
alert("出错了!!!");
}
}
}
//使用 jquery
function verify()
{
var jqueryObj = $("#userName");
var userName = jqueryObj.val();
var obj = {name:"123",age:20};
$.ajax({
type: "POST", //http请求方式
url: "AJAXXMLServer", //服务器段url地址
data: "name=" + userName, //发送给服务器段的数据
dataType: "xml", //告诉JQuery返回的数据格式
success: callback //定义交互完成,并且服务器正确返回数据时调用的回调函数
});
}
function callback(data) {
// alert("服务器段的数据回来了!!");
//3.接收服务器端返回的数据
//需要将data这个dom对象中的数据解析出来
//首先需要将dom的对象转换成JQuery的对象
var jqueryObj = $(data);
//获取message节点 dom
var message = jqueryObj.children();
//获取文本内容
var text = message.text();
//4.将服务器段返回的数据动态的显示在页面上
//找到保存结果信息的节点
var resultObj = $("#result");
//动态的改变页面中div节点中的内容
resultObj.html(text);
alert("");
}
MiscroSoft Script Debug
Multi-ie-setup.exe //在一台机器上安装多个ie
abort() 停止当前请求
getAllResonseHeaders()
getResponseHeader(String header)
open(String method, String url, boolean asynch, String username, String password)
Send()
setRequestHeader(String, String)
readyState(0: 未初始化 1:open 2:服务器响应 3:交互中 4: 完成)
返回:
responseText
responseXML
status
statusText 状态码文本信息
ie 选项 : 总是以utf-8方式发送 url
encodeURI(str); new String(str.getBytes("iso8859-1"),"utf-8")
encodeURI(encodeURI(str)); URLDecoder.decode(str, "utf-8");
xmlhttprequest
ie:访问跨域页面是会给出提示,
firefox:不允许访问垮域页面
解决方式:使用代理
funcion convertURL(url){
if(url.subString(0,7)=="http://"){
url = url.replace("?", "&");
url = "Proxy?url="+url;
}
return url;
}
解析url
PrintWriter out = response.getWriter();
if(url!=null){
URL connect = new URL(url.toString());
URLConnection connection = connect.openConnection();
connection.setDooutput(true);
OutputStreamWriter paramout = new OutputStreamWriter(connection.getOutputStream());
paramOut.write(param.toString());
paramout.flush();
BufferReader reader = new BufferReader(new InputStreamReader(connection.getInputSteam(),"GB2312"));
String line;
while(!line=reader.readLine()) != null ){
out.println(line);
}
}