在Ajax调用没有响应
问题描述:
Open方法我是新来的JSON和AJAX, 所以我想这一段代码从提到的网址,以获取JSON数据,然后使用AJAX调用我试图打印在控制台,但是没有打印在控制台上。在Ajax调用没有响应
请有人纠正它是什么,我做错了这里,下面是代码片段。
var req = new XMLHttpRequest();
var btn = document.getElementById("btn");
var display = document.getElementById("display");
req.open("GET", "http://www.filltext.com/?rows=10&id={index}&email={email}&username={username}&password={randomString|5}&pretty=true", true);
btn.addEventListener("click",function(){
req.onreadystatechange = function() {
\t var res = req.responseText;
\t Console.log(res);
};
});
req.send();
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Hello</h1>
<Button id= 'btn'>click me</Button>
<div id = 'display'></div>
<script>"Test.js"</script>
</body>
</html>
答
当您设置req.onreadystatechange BTN事件中只添加回调要求。问题是请求已经完成。您需要通过btn点击发出请求,然后在btn操作中调用send()。的
控制台,而不是控制台
var req = new XMLHttpRequest();
var btn = document.getElementById("btn");
var display = document.getElementById("display");
req.open("GET", "http://www.filltext.com/?rows=10&id={index}&email={email}&username={username}&password={randomString|5}&pretty=true", true);
req.onreadystatechange = function() {
var res = req.responseText;
console.log(res);
};
btn.addEventListener("click",function(){
req.send();
});
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Hello</h1>
<Button id= 'btn'>click me</Button>
<div id = 'display'></div>
<script>"Test.js"</script>
</body>
</html>
+0
仍然没有工作,... – Sarsahan
答
你需要改变你的JS代码,把一切的块里面,所以它看起来不错:)
var btn = document.getElementById("btn");
var display = document.getElementById("display");
btn.addEventListener("click", function() {
req = new XMLHttpRequest();
req.open("GET", "http://www.filltext.com/?rows=10&id={index}&email={email}&username={username}&password={randomString|5}&pretty=true", true);
req.send();
req.onreadystatechange = function() {
var res = req.responseText;
console.log(res);
};
});
您只是在添加“响应事件处理程序”之后点击按钮。到那时,Ajax请求可能已经完成。在您发送请求之前绑定处理程序*。 –
JavaScript是**区分大小写**。它是'console'而不是'Console'。 – Quentin
确保您能够使AJAX调用远程域。可能被阻止由于[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)。检查你的控制台。 –