发送Ajax请求

get请求与post请求

get请求传送数据量较小,不能大于2KB,参数追加在URL后面,看的到明码的请求参数值。

post请求传送数据量大小不受限制,请求通过HTTP POST机制 将请求参数放在HTML Header中传输,看不到明码的请求参数值。

get请求send()不用传参数,post请求send()需要传参数。post请求需要设置setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”)。

发送get请求

//步骤一:创建异步对象
var ajax = new XMLHttpRequest();//步骤二:设置请求的url参数,参数一是请求的类型,参数二是请求的url,可以带参数
ajax.open('get','url?data='+data);//步骤三:onreadystatechange 状态改变就会调用
ajax.onload = function () {
if (ajax.status==200) {

//步骤五 回调响应

    }

}
// 步骤四:发送请求
ajax.send();注册事件

发送post请求

// 步骤一:创建异步对象

var ajax = new XMLHttpRequest();

//步骤二:设置请求的url参数,参数一是请求的类型,参数二是请求的url,可以带参数

ajax.open('post','url');

ajax.setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”)。

//步骤三:onreadystatechange 状态改变就会调用

ajax.onload = function () {
if (ajax.status==200) {

//步骤五 回调响应

    }

}
// 步骤四:发送请求

ajax.send(data);注册事件

XML请求与表单提交

发送xml请求实际上依然是发送post请求,只是参数以xml字符串形式发送。

发送表单数据 html5提供了FormData

可以var FormData = new FormData(document.querySelector("#formId"));获取表单数据,然后send(FormData )。

封装原生js发送ajax请求

function ajax_method(url,data,method,success) {
    // 异步对象
    var ajax = new XMLHttpRequest();


    // get 跟post  需要分别写不同的代码
    if (method=='get') {
        // get请求
        if (data) {
            // 如果有值
            url+='?';
            url+=data;
        }
        // 设置 方法 以及 url
        ajax.open(method,url);
        // send即可
        ajax.send();
    }else{
        // post请求
        // post请求 url 是不需要改变
        ajax.open(method,url);
        // 需要设置请求报文
        ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        // 判断data send发送数据
        if (data) {
            // 如果有值 从send发送
            ajax.send(data);
        }else{
            // 木有值 直接发送即可
            ajax.send();
        }
    }
    // 注册事件
    ajax.onreadystatechange = function () {
        // 在事件中 获取数据 并修改界面显示
        if (ajax.readyState==4&&ajax.status==200) {
            // console.log(ajax.responseText);
            // 将 数据 让 外面可以使用
            // return ajax.responseText;
            // 当 onreadystatechange 调用时 说明 数据回来了
            // ajax.responseText;
            // 如果说 外面可以传入一个 function 作为参数 success
            success(ajax.responseText);
        }
    }

}

处理响应

现在Ajax技术已经逐步使用json响应来取XML响应。需要将responseType设置成json。通过response获取服务器响应。

猜你喜欢

转载自blog.csdn.net/LongforLeo/article/details/80038173
今日推荐