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>