您的位置:首页 > Web前端 > JavaScript

初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求

2013-08-20 11:35 1366 查看
XMLHttpRequest 六个方法六个属性

function: 

    open(methiod,url[,async,username,password])

  

    setRequestHeader(label,value);

    send(content);

    getAllResponseHeaders();

    getResponseHeader(label);

    abort();

attribute:

    onreadystatechange

    readyState

    responseText

    responseXML

    status

    statusText

var xmlhttp = new XMLHttpRequest();

post:

var url ="The url you want to send your request to";

var arg = The args you want to send to the server such as 'a=1';

xmlhttp.open("post",url,true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.onreadystatechange = "The function you want to call when the request is responsed";

xmlhttp.send(arg);

get:

var url ="The url you want to send your request to"+'?xxx=xxx&aaa=aaa';

xmlhttp.open("get",url,true);

xmlhttp.onreadystatechange = "The function you want to call when the request is responsed such as 'callback'";

xmlhttp.send(null);
Ajax中接收返回json数据格式

[{'value':'settle','title':'spkane'},{'value':'settle2','title':'spkane2'}]

function callback{

if(xmlhttp.readyState == 4 && xmlhttp.status == 200){

//And usually this code is in the function you have added to the onreadystatechange;

Every thing is Ok,do what you want to do here;

try{
eval("var response =("+xmlhttp.responseText+")");
var sel = document.getElementById("cities");
var name = value = nulll;
for(var i = 0; i<response.length; i++){
name = response[i].title;
value = response[i].value;
document.forms[0].elements[1].options[i] = new Option(name,value);//set the select options or do anything you want to do
}
}catch(e){
alert(e.message);
}

}else{
document.getElementById("cities").innerHTML="Error:No cities";
}
}
Ajax中接收返回xml数据格式

<city><value>settle</value><title>spkane</title><value>settle2</value><title>spkane2</title></city>

function callback{

if(xmlhttp.readyState == 4 && xmlhttp.status == 200){

//And usually this code is in the function you have added to the onreadystatechange;

//Every thing is Ok,do what you want to do here;

try{
var citynodes = xmlhttp.responseXML.getElementsByTagName("city");
for(var i = 0; i < citynodes[i].childNodes.length;j++){
var name = value = null;
for(var j = 0; j<citynodes[i].childNodes.length; j++){
var elem = citynodes[i].childNodes[j].nodeName;
var nodevalue = citynodes[i].childNodes[j].firstChild.nodeValue;
if(elem == "value"){
value = nodevalue;
}else{
name = nodevalue;
}
}
document.forms[0].elements[1].options[i] = new Option(name,value);
}

}catch(e){
alert(e.message);
}

}else{
document.getElementById("cities").innerHTML="Error:No cities";
}
}

xxxxxxxx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐