我在www.example.com中 AJAX asp.net

cgvd09ve  于 2023-03-20  发布在  .NET
关注(0)|答案(1)|浏览(206)

我在www.example.com项目中 AJAX asp.net,但是它没有响应。
我觉得这部分应该有问题,我和 AJAX 接触不多,可能写作上有问题。
下面是我的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="get">GET</button>
    <br>
    <button id="post">POST</button>
    <br>
    <div id="div"></div>
</body>
</html>

<script>
    window.onload = function(){
        const get = document.querySelector('#get')
        const post = document.querySelector('#post')
        const div = document.querySelector('#div')
        get.onclick = function(){
            console.log('Click')
            let xhr = new XMLHttpRequest()
            xhr.onreadystatechange = function(){
                console.log('asd')
                if(this.readyState == 4 && this.status ==200){
                    div.innerHTML = this.responseText
                }
                xhr.open('GET','http://127.0.0.1/api/get?a=1',true) 
                xhr.send()
            }
        }
    }
</script>

任何人的任何帮助都是非常感谢的

rta7y2nd

rta7y2nd1#

您对xhr.openxhr.send的调用必须在对xhr.onreadystatechange的调用的外部
目前,您正在设置如何处理 AJAX 状态更改,但由于opensend该代码块中,因此它们从未运行,因此从未调用您的服务器。
代码应该如下所示...

window.onload = function(){
    const get = document.querySelector('#get')
    const post = document.querySelector('#post')
    const div = document.querySelector('#div')
    get.onclick = function(){
        console.log('Click')
        let xhr = new XMLHttpRequest()
        xhr.onreadystatechange = function(){
            console.log('asd')
            if(this.readyState == 4 && this.status ==200){
                div.innerHTML = this.responseText
            }
        }
        xhr.open('GET','http://127.0.0.1/api/get?a=1',true) 
        xhr.send()
    }
}

如果您考虑使用jQuery,我建议您改用$.ajax

相关问题