[英]AJAX Get isn't working
我试图用AJAX从mysql服务器中提取数据。 这是AJAX调用:
function getAllTasks()
{
alert("Getting all tasks");
$.ajax({
type: "get",
url: "ajax.php",
dataType: "json",
data: data,
async: false,
success: function(data){
alert('hi!');
//perform operation
},
error: function() {
alert('Error occurs!');
}
});
}
这是它应该运行的PHP:
header('Content-Type: application/json');
$conn = new mysqli('localhost', 'projectAdmin', 'admin', 'to_do_list')
or die('Error connection to database');
getAllTasks($conn);
function getAllTasks($conn)
{
$query = "SELECT * FROM tasks WHERE ID=1";
$result = mysqli_query($conn, $query);
while($row = $result->fetch_assoc())
{
$tasks[] = $row;
}
echo json_encode($tasks);
}
它不起作用。 当我单独运行PHP时,它工作正常,并在浏览器中返回一个JSON字符串(chrome)。 当我运行AJAX时,没有任何反应。 我得到“获取所有任务”的警报,然后它就不起作用了。 从$(document).ready()函数调用AJAX。
我不知道我哪里出错了,我在这里看了很多帖子,我的AJAX代码看起来一模一样。 这是json_encode的问题吗? AJAX? 请帮助。
这里:
data: data,
看起来data
变量未定义。 另外,我建议您删除async: false
选项以生成异步请求而不是阻止UI。
在浏览器中查看Console
可能还会显示代码可能存在的一些问题。
var xhr = new XMLHttpRequest();
xhr.open("GET", "ajax.php");
xhr.addEventListener("readystatechange", function(ev) {
var xhr = ev.target;
if (xhr.readyState < 4) { /*not finished downloading yet.*/
return;
}
/*the request is completed. do your stuff with xhr.responseText here.*/
console.log(xhr);
});
xhr.send();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.