javascript - Ajax 调用没有警报

标签 javascript php ajax

我正在尝试通过 Ajax 调用提醒一些数据。谁能发现我做错了什么吗?

PHP

while($row = $stmt->fetch()){
    echo json_encode($row);
}
echo "Done!";

Json_encode/网络预览的结果

{"flakId":"21098-10_flak-2"}{"flakId":"21098-10_flak-1"}Done!

JS

if(chosenObjNr){
    alert('I CAN see this alert')
    $.ajax({
        url:'php/update.php',
        type: 'POST',
        data: 'chosenObjNr=' + chosenObjNr,
        dataType: 'json',
        error: function (data){ alert("failed, i can see this!");},             
        success: function(data){  

            alert('I cannot see this alert!');
            alert(data);

            var data0;
            data0 = data[0];
            alert(data0);

            var falkId;
            flakId = data[0];
            alert(flakId);

            console.log(data);
        }

    });

};

结果

没有警报,控制台中也没有任何内容。

最佳答案

问题是,ajax 的 success 部分永远不会运行。您将 dataType 定义为 json,因此它需要 json。你的 PHP 是 echos 2 json 和一个不需要的字符串。

因此,要检查您的错误是什么,请在评论中添加 fail 函数,如 Sina Sad:

if (chosenObjNr) {
alert('I CAN see this alert')
$.ajax({
    url: 'php/update.php',
    type: 'POST',
    data: 'chosenObjNr=' + chosenObjNr,
    dataType: 'json',
}).done(function (data) {
    alert('I cannot see this alert!');
    //Do what you want to do here
}).fail(function (msg) {
    alert('An error occured: ' + msg.statusText);
});

}

而且,如果您想修复 .php ,请删除 echo 'Done'; 部分,并将记录添加到数组中,完成后进行编码转为 json:

$return = array();
while ($row = $stmt->fetch()) {
    $return[] = $row;
}
echo json_encode($return);

关于javascript - Ajax 调用没有警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32710609/

相关文章:

javascript - 无需离开网页即可编辑列表

javascript - asp .net 形式的客户端 JavaScript ViewState 更新

javascript - 如何解析异常数组?

javascript - 使用nodejs将json对象附加到文件中

php - $_GET 和 $_POST

php - 将平面数组按键分组为多维数组,如果我们不知道有多少层。 PHP

javascript - 如何将多列数据渲染到一列中?

php - 在动态 div 中显示下拉菜单

Javascript 回调函数 - Node.js

javascript - 如何获取文件的绝对路径