【发布时间】:2019-03-01 04:19:45
【问题描述】:
我知道该 URL 正在按预期工作,因为我将其记录到控制台,这很好。但是,当 readyState == 4 和 status == 200 时,我无法将“好消息”登录到控制台。我尝试删除 readState,但它仍然不会记录。我尝试记录状态,它只会触发一次,值为 0。这是我第一次使用 Ajax,因此不胜感激。
function setupRequest(){
var bttn = document.querySelector('#send');
bttn.addEventListener('click', sendData)
}
setupRequest();
function sendData () {
console.log('ran')
var url = 'localhost/bev/drinks.php';
var data = document.getElementById('input').value;
url += '?' + 'alcohol=' + data;
console.log(url)
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
console.log('good news')
console.log(this.responseText)
} else {
console.log(this.status)
}
}
request.open('GET', url, true);
request.send;
console.log('sent')
}
【问题讨论】:
-
您是否尝试过在代码中输入 URL 的协议以便使用“http://”localhost 而不是 localhost? (cmets 会自动创建链接,因此请忽略引号)
-
同时查看控制台和网络控制台,看看你得到了你所期望的。您不能从硬盘执行此操作。该页面必须由 Web 服务器提供,饮料必须来自同一服务器或支持 CORS 的服务器
-
您需要使用
request.send()实际调用request.send。除非您添加括号,否则您不会做任何事情。
标签: javascript ajax