jsajax为啥没有数据

JavaScript019

jsajax为啥没有数据,第1张

JS Ajax没有数据可能是由于以下几种原因:

1. 服务器端没有正确处理Ajax请求,导致无法正确返回数据。

2. Ajax请求的URL地址不正确,导致无法正确获取数据。

3. Ajax请求的参数不正确,导致无法正确获取数据。

4. 网络问题,导致Ajax请求无法成功发送到服务器端。

表面上来看,你写的完全没有问题。

但是实际上你是出了问题,那么原因可能就是

第一:如果是服务器拿到数据再渲染到页面来的话,可能是数据渲染没有完成,但是js已经执行了,这是异步问题,异步问题用callback来解决,取到再来获取,例如下面这样,用一个callback来简单解决。只有通过ajax取到值以后才执行callback。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

</head>

<body>

 

<script>

function checkHtmlFile(fileName, callback) {

var xml = new XMLHttpRequest()

xml.open('GET', fileName, false)

xml.send()

callback(xml)

}

checkHtmlFile('b.html',function(doc) {

if (doc.status === 200&& doc.statusText === 'OK') {

alert('OK')

} else {

alert('NO')

}

})

</script>

 

 

</body>

</html>

第二:还是异步问题,js在浏览器运行的时候,js被执行了,但是下面的html在js后面。js取不到id的。只有加上DOMContentLoaded或window.onload之类的事件来判断html的dom是不是加载完成了。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

</head>

<body>

<script>

window.addEventListener('DOMContentLoaded', function() {

var pageNum = document.getElementById('pageNum').value

var maxPage = document.getElementById('maxPage').value

alert("弹出:" + pageNum)

alert("弹出:" + maxPage)

})

</script>

<input type="text" id="pageNum" name="pageNum" value="我是pageNum的value" />

<input type="text" id="maxPage" name="maxPage" value="我是maxPage的value" />

</body>

</html>