发表于: 2021-03-29 19:48:41

1 1989


今天完成的事情:使用javascript发起异步请求,将输入框的值发送给接口

明天计划的事情:换用jquery发起异步请求,获得正确的返回值,并把页面上传到服务器运行

收获:如何将数据传到接口

XMLHttpRequest.open()方法用于指定 HTTP 请求的参数,或者说初始化 XMLHttpRequest 实例对象。它一共可以接受五个参数。

method:表示 HTTP 动词方法,比如GET、POST、PUT、DELETE、HEAD等。

url: 表示请求发送目标 URL。

async: 布尔值,表示请求是否为异步,默认为true。如果设为false,则send()方法只有等到收到服务器返回了结果,才会进行下一步操作。该参数可选。由于同步 AJAX 请求会造成浏览器失去响应,许多浏览器已经禁止在主线程使用,只允许 Worker 里面使用。所以,这个参数轻易不应该设为false。

user:表示用于认证的用户名,默认为空字符串。该参数可选。

password:表示用于认证的密码,默认为空字符串。该参数可选。


XMLHttpRequest.setRequestHeader()方法用于设置浏览器发送的 HTTP 请求的头信息。该方法必须在open()之后、send()之前调用。如果该方法多次调用,设定同一个字段,则每一次调用的值会被合并成一个单一的值发送。

该方法接受两个参数。第一个参数是字符串,表示头信息的字段名,第二个参数是字段值。


XMLHttpRequest.send()方法用于实际发出 HTTP 请求。它的参数是可选的,如果不带参数,就表示 HTTP 请求只包含头信息,也就是只有一个 URL,典型例子就是 GET 请求;如果带有参数,就表示除了头信息,还带有包含具体数据的信息体,典型例子就是 POST 请求。


XMLHttpRequest.readyState返回一个整数,表示实例对象的当前状态。该属性只读。它可能返回以下值。

0,表示 XMLHttpRequest 实例已经生成,但是实例的open()方法还没有被调用。

1,表示open()方法已经调用,但是实例的send()方法还没有调用,仍然可以使用实例的setRequestHeader()方法,设定 HTTP 请求的头信息。

2,表示实例的send()方法已经调用,并且服务器返回的头信息和状态码已经收到。

3,表示正在接收服务器传来的数据体(body 部分)。这时,如果实例的responseType属性等于text或者空字符串,responseText属性就会包含已经收到的部分信息。

4,表示服务器返回的数据已经完全接收,或者本次接收已经失败。


XMLHttpRequest.status属性返回一个整数,表示服务器回应的 HTTP 状态码。一般来说,如果通信成功的话,这个状态码是200;如果服务器没有返回状态码,那么这个属性默认是200。请求发出之前,该属性为0。该属性只读。

200, OK,访问正常

301, Moved Permanently,永久移动

302, Move temporarily,暂时移动

304, Not Modified,未修改

307, Temporary Redirect,暂时重定向

401, Unauthorized,未授权

403, Forbidden,禁止访问

404, Not Found,未发现指定网址

500, Internal Server Error,服务器发生错误

let xmlhttp = new XMLHttpRequest();
xmlhttp.open("post""/a/login"true);
xmlhttp.setRequestHeader("content-type""application/x-www-form-urlencoded");
xmlhttp.send("name=" + user.val() + "&pwd=" + password.val());
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
     let co =JSON.parse(xmlhttp.responseText)
     if (co.code == 0) {
           location.href = "http://dev.admin.carrots.ptteng.com";
     }
     else {
           prompt.text(co.message);
     }
}



返回列表 返回列表
评论

    分享到