ajax过程

//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;

你可能感兴趣的:(ajax过程)