Javascript jQuery$.ajax方法在PHP中失败
我试图创建一个简单的应用程序,用PHP和jQuery显示MySQL数据库中的数据。但是我坚持通过jQuery获取数据。我的PHP脚本返回数据,没有问题。我在控制台中没有收到任何数据(来自Javascript jQuery$.ajax方法在PHP中失败,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我试图创建一个简单的应用程序,用PHP和jQuery显示MySQL数据库中的数据。但是我坚持通过jQuery获取数据。我的PHP脚本返回数据,没有问题。我在控制台中没有收到任何数据(来自console.log(datajson);) 请帮忙。。。我找不到任何有效的解决办法。我在谷歌搜索了至少3-4个小时/ 我的PHP脚本: <?php header('Content-Type: application/json'); $servername = "localhost"; $username
console.log(datajson);
)
请帮忙。。。我找不到任何有效的解决办法。我在谷歌搜索了至少3-4个小时/
我的PHP脚本:
<?php
header('Content-Type: application/json');
$servername = "localhost";
$username = "username";
$password = "pasword";
$dbname = "dbname";
//Open connection to MySQL DataBase
$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Error: " . mysqli_error($connection));
//Fetch table rows from MySQL DataBase
$sql = "SELECT * FROM /table-name/";
$dbresult = mysqli_query($conn, $sql) or die("Error in Selecting: " . mysqli_error($conn));
//Create an array
$dataarray[] = array();
while ($row = mysqli_fetch_assoc($dbresult)) {
$dataarray[] = $row;
}
echo json_encode($dataarray);
//Close the DataBase connection
mysqli_close($conn);
?>
php的工作链接是
JSBin处的代码示例->您的JavaScript需要JSONP: 但是您的PHP正在发送JSON: JSON不是JSONP,所以它会出错
告诉JavaScript使用JSON,或者重写服务器端代码以输出JSONP。您必须返回有效的JSONP
echo 'callback(' . json_encode($dataarray) . ')';
然后将ajax函数更改为
$.ajax({
url : "http://kynchev.eu/database/db.php",
dataType : "jsonp",
jsonpCallback : 'callback'
}).done(function (data) {
console.log(data);
});
由于跨域JSONP请求不能同步,我看到两个问题:
localhost
工作并试图访问远程主机(例如http://kynchev.eu/database/db.php
)您需要类似于标题('Access-Control-Allow-Origin:')
但这确实不安全,因为星号*
是一个通配符,可能来自任何远程主机。我建议只将受信任域放入访问控制允许来源
ajax
。这在某种程度上是可能的。按照现在的方式,返回json
将始终返回null
,因为$的success
回调。在函数到达return json之前,ajax
方法不会运行代码>
你可以添加你的js代码吗。谢谢。“jQuery$.ajax方法失败”为什么失败?失败是因为ajax请求中的数据为空。首先,ajax应该是异步的,URL与您的页面是同一个域吗?不,它是跨域ajax请求!现在我有了来自PHP的JSONP,但是jquery无法访问console.log(数据);谢谢完成了。我在你的脚本代码中发现了两个错误。第一个是
).done
->>).done
和第二个jsonp
->jsonpCallback
header('Content-Type: application/json');
echo json_encode($dataarray);
echo 'callback(' . json_encode($dataarray) . ')';
$.ajax({
url : "http://kynchev.eu/database/db.php",
dataType : "jsonp",
jsonpCallback : 'callback'
}).done(function (data) {
console.log(data);
});