无法将值从 PHP 传递到 AJAX

  • 本文关键字:AJAX PHP php jquery ajax
  • 更新时间 :
  • 英文 :


我在AJAX和PHP之间的通信中遇到了问题。我已经从相关的问题和答案中尝试了所有这些代码,但没有任何效果。此代码应从同一服务器上的 PHP 文件接收 JSON 字符串,并在 HTML 区域中显示值。

$(document).ready(function(){
    setInterval(ajaxcall, 1000);
});
function ajaxcall(){
var data = $('#signup_form').serialize();
    $.ajax({
        type: "GET",
        url: "test.php",
        data: data,
        dataType: 'json',
        success: function (data) {
            window.console.log("Success");
            document.getElementById("count").innerHTML = $('#time').html(data.time);
    },error: function alert(){"error";}
});}

当我在浏览器中执行脚本(使用调试模式(时,没有任何反应。我认为这意味着"成功"方法存在问题。

这是我的PHP代码的一部分(用于测试(:

for($i = 0; $i < 50; $i++){
    sleep(1);
    return_json($argv[1]);
}
//return all values for html/javascript
function return_json($a){
    $json = array('time' => $a);
    echo json_encode($json);
}

我希望你们中的一些人可以帮助我:)

函数真的ajaxcall()被调用吗?尝试在开头添加console.log调用,例如

function ajaxcall(){
   var data = $('#signup_form').serialize();
   console.log(' form data = %o', data)
   //...

还有另一个可能的问题,该函数error: function alert(){"error";}不做任何可见的操作。如果您的服务器脚本返回错误,在这种情况下您将看不到任何内容。

将其更改为类似

error: function(){ alert("error"); }

您应该将内容类型添加到响应标头:

//this line
header('Content-type: application/json');
for($i = 0; $i < 50; $i++){
    sleep(1);
    return_json($argv[1]);
}
//return all values for html/javascript
function return_json($a){
    $json = array('time' => $a);
    echo json_encode($json);
}

进一步阅读和更详细的解释在这里:jQuery $.ajax 请求的数据类型 json 不会从 PHP 脚本中检索数据

最新更新