js 如何判断是异步请求还是普通请求

JavaScript023

js 如何判断是异步请求还是普通请求,第1张

这是根据请求时的参数来决定的啊,如果async为true就是异步请求,为false就是同步请求。也就是说,是否异步请求是由前端决定的,后台程序是不作区分一视同仁处理的。前端如果是以同步方式发出请求,它就会阻塞程序,等待后台返回数据再继续运行;而异步方式的话,就会立刻返回,继续执行其他代码,当后台返回数据时再以回调函数的形式进行处理。既然同步异步是由前端决定的,那么前端的js自然就知道如何来处理这个请求结果啦。

以Ajax方式发送

<script type="text/javascript">

一、获取url所有参数值

function US() {

var name, value

var str = location.href

var num = str.indexOf("?")

str = str.substr(num + 1)

var arr = str.split("&")

for (var i = 0 i < arr.length i++) {

num = arr[i].indexOf("=")

if (num > 0) {

name = arr[i].substring(0, num)

value = arr[i].substr(num + 1)

this[name] = value

}

}

}

二、使用JS 发送JSON格式的POST请求

 var us = new US()

var xhr = new XMLHttpRequest()

xhr.open("POST", "/searchguard/api/v1/auth/login", true)

xhr.setRequestHeader("Content-type", "application/json")

xhr.setRequestHeader("kbn-version", "5.3.0")

xhr.onreadystatechange = function() {

if (xhr.readyState == 4) {

if (xhr.status == 200) {

window.location.href = us.nextUrl

}

}

}

xhr.send(JSON.stringify({

"username" : us.u,

"password" : us.p

}))

</script>