//1.创建对象
if(window.ActiveXObject) {
xmlHttpRequest =newActiveXObject("Microsoft.XMLHTTP")
}else if(window.XMLHttpRequest) {
xmlHttpRequest =newXMLHttpRequest()
}
//2.创建http请求,并制定请求方法
xmlHttpRequest.open(method,URL,Asynchronous,name,password)
//method:get,post,head,put,delete,options
//url 绝对相对路径都可以
//Asynchronous 同步false 异步true 默认
//name
//3.设置响应http请求状态变化函数
xmlHttpRequest.onreadystatechange = getData;
functiongetData()
{
//0未初始化状态 1初始化状态 2发送数据 3接受状态 4完成状态
//判断XMLHttpRequest对象的readyState属性值是否为4,如果为4表示异步调用完成
if(xmlHttpRequest.readyState ==4)
{
//异步调用成功200
//:如果HTML文件不是在Web服务器上运行,而是在本地运行,则xmlHttpRequest.status的返回值为0
if(xmlHttpRequest.status ==200|| xmlHttpRequest.status ==0)
{
//使用以下语句将返回结果以字符串形式输出
document.write(xmlHttpRequest.responseText);
//或者使用以下语句将返回结果以XML形式输出
//docunment.write(xmlHttpRequest.responseXML);
}
}
}
//4.发送http请求
xmlHttpRequest.send(data)
其中data是个可选参数,如果是get请求的数据写在url中,那这里即可以使用null来替代。如果是post请求,data参数的格式与在URL中传递参数的格式类似,以下代码为一个send()方法中的data参数的示例:
name=myName&value=myValue
post: xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
CORS跨域:
服务器端设置头信息set_header('Access-Control-Allow-Origin','*'),*针对所有域名请求,可修改为任何域名
如需传递cookie:(此时access-control-allow-origin不能为*)
服务端.set_header('Access-Control-Allow-Credentials','true'
客户端:xhr.withCredentials =true;
网友评论