[英]Handle AJAX request to PHP url for JSON data. I cant pass the data
我试图将我的数据从mySQL数据库传递到returnData.PHP,并将其作为JSON数据的JSON数据传递给.js文件中的javascript。 到目前为止,我可以从mysql查询中检索数据并将其编码为json了。 以下是returnData.php
<?php
include('../sqlFunctions/sqlFunctions.php');
//Establish connection to database
$link = linkDB();
//set up a MySQL query
$sql = "SELECT * FROM shelters;";
if(!$results = $link->query($sql)){
die("Query Unsuccessful");
}
$rows = array();
while ($data = $results->fetch_assoc()) {
$rows[] = $data;
}
$JSONRows = json_encode($rows);
return $JSONRows;
?>
我使用AJAX从javascript函数调用此页面,需要传递此数据。
<script type="text/javascript">
function getData(){
var dataXMLhttp = new XMLHttpRequest();
dataXMLhttp.open("GET", "./js/returnData.php", true);
dataXMLhttp.send();
if(dataXMLhttp.readyState == 4 && dataXMLhttp.status == 200){
var XMLdataResult = dataXMLhttp.responseText;
window.alert("XMLdataResult Contains something.");
}else{
window.alert("404");
}
}getData();
</script>
我收到404消息。 显然我的AJAX请求已损坏。 返回$ JSONow显然表明了我的笨拙。 我已经看过并阅读了有关AJAX与PHP交互的信息,但看不到我所缺少的难题。
我的AJAX请求有什么问题? 如何将JSON转换为JavaScript变量以进行PARSing?
谢谢阅读。
您的ajax函数缺少onreadystatechange
事件处理程序,因此它总是会触发alert('404')
-而且该函数中命令的顺序通常是乱序的。 通常应在打开连接并发送请求之前声明回调。
还指出了使用相对路径-始终使用绝对路径会更容易,
function getData(){
try{
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function(){
if( xhr.readyState == 4 && xhr.status == 200 ){
var data = this.response;
alert( data );
}
}
xhr.open( 'GET', '/js/returnData.php', true );
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send();
}catch( err ){
alert( err );
}
}
getData.call( this );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.