【问题标题】:JQUERY JSON AJAX works offline but not onlineJQUERY JSON AJAX 离线工作但不在线
【发布时间】:2012-01-14 10:47:22
【问题描述】:

我得到了这个代码。它在我的本地主机上工作得很好,但是当我把它放到网上时,它只会将数据保存到数据库中,但它似乎没有加载它。

当我通过 ajax 将字符串从 api.php 传递到站点时,它可以工作。所以也许它与json有关。另一方面,我正在我的服务器上尝试来自 http://api.jquery.com/jQuery.getJSON/ 的 get_json 示例,它也确实有效。

我尝试了许多不同的东西,例如 jsonp、json-fallback 等,但似乎没有任何效果。

这是代码:

api.php:

<?php
include('db.php');
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
$tableName = $_GET['page'];
$category = $_GET['category'];
$date = $_GET['date'];

if ($date == Null){
if ($category <> Null){
$result = mysql_query("SELECT * FROM $tableName WHERE category LIKE '$category'");  
}else {
$result = mysql_query("SELECT * FROM $tableName"); 
}
}else{
$result = mysql_query("SELECT * FROM $tableName WHERE date LIKE '$date'"); 
}

$data = array();
while ( $row = mysql_fetch_row($result))
{
echo json_encode($data);
?>

在后台某处:

$.ajax({  
    url: 'api.php?page=home', data: "", dataType: 'json',  success: function(rows) {                        
        for (var i in rows){
                var row = rows[i];  
                var vdate = row[0];
                var vtitle = row[1];
                var vcontent = row[2];
                $('#edate').val(vdate);
                $('#etitle').val(vtitle);
               $('#econtent').val(vcontent);
            }
    }
}); 

任何帮助表示赞赏!

【问题讨论】:

  • 您的网络服务器日志中有任何错误吗?还是php错误?还是mysql错误?还是浏览器出错?

标签: jquery mysql ajax json


【解决方案1】:

检查您的控制台(firefox 或 chrome 按下F12 > 点击Console,看到任何错误?,将它们发布到您的问题中。

还可以使用$.ajax 内置的错误处理程序。

$.ajax({  
url: 'api.php?page=home',
data: "",
dataType: 'json',
success: function(rows) {
    for (var i in rows){
            var row = rows[i];  
            var vdate = row[0];
            var vtitle = row[1];
            var vcontent = row[2];
            $('#edate').val(vdate);
            $('#etitle').val(vtitle);
           $('#econtent').val(vcontent);
        }
},
// Any HTTP Errors will be alerted.
error: function (xhr, ajaxOptions, thrownError){
    alert(xhr.status);
    alert(thrownError);
}
});

主要..检查您的控制台是否有错误。它必须在您的控制台或上面的处理程序中引发错误。

【讨论】:

  • 啊,感谢您的快速回复。我刚刚将它上传到另一台服务器,现在它可以工作了......好吧.. :)
【解决方案2】:

我没有仔细检查这个,但这可能是你的问题:

$data = array();
while ( $row = mysql_fetch_row($result))
{
echo json_encode($data);
?>

你应该关闭它,同时 json 编码 $row 而不是 $data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    相关资源
    最近更新 更多