代码问题,不知道为什么点击按钮不显示内容,刚学ajax,请大家指点一下。
首先:document.querySelector的用法自己好好看看,一般获取元素用document.getElementById或者document.getElementsByClassName这几个方式来。
正确的写法:let btn = document.querySelector('button[id=btn]')或者let btn = document.getElementById('btn')
其次:要学会怎么去debug问题。
先把思路捋清楚了再写:
正确思路:写button\div标签,加上id,js中,获取button,给button加上点击监听事件,在点击监听事件中执行ajax,执行ajax:首先实例化,指定请求方式、请求地址、异步还是同步,就是req.open,再发送请求,req.send,最后监测状态变化也就是req.onreadystatechange,当监听到返回的状态为4时,表示请求完成,然后拿到返回来的数据,将返回来的数据再赋给div,显示出来。
上代码吧:
<body>
<button id="btn">点击查询显示</button>
<div id="box">你好,世界。</div>
</body>
<script>
//获取页面元素
let btn = document.querySelector('button[id=btn]')
let box = document.querySelector('div[id=box]')
//为按钮添加监听事件
btn.addEventListener('click', function () {
let req = new XMLHttpRequest()
req.open('get', "http://127.0.0.1:12123/CarData/fwfcx.asp", true)
req.send()
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {
box.innerHTML = this.responseText
}
}
})
</script>
那你得看看network里 接口是否成功了,req.readyState 是否等于 4 并且 req.srarus ==200 。你在if判断上一行打印一下req看看
cors