javascript - JSON Stringify 和 AJAX 解析错误

标签 javascript php jquery ajax json

我已经花了好几个小时尝试我能在网上找到的所有建议,但它仍然失败。当我使用 JSON.stringify 对函数参数进行编码,然后通过 AJAX 将其传递到我的 PHP 处理程序时,我收到一个警告弹出窗口,提示 parsererror。

这显然是 Javascript 中的一个问题,但我现在无法确定问题出在哪里。

谁能发现我在这里做错了什么?

            // JSON Encode to pass via AJAX to PHP
            var params = { "id": player };
            var params2 = JSON.stringify(params);

            // {"id":"939952da-23df-4ff1-b66c-61018b621645"}
            console.log(params2);

            cellOptions.innerHTML = "<button onclick='sendAction(\"kickPlayer\"," + params2 + ")'>Kick</button>";

Ajax

function sendAction(cmd, params)
{
    $.ajax({
        type: "POST",
        url: "handler.php",
        data: { 'action': cmd, 'params': params },
        dataType: 'json',
        success: function(data)
        {
            if (data['status'] == 'failed')
            {

            }
            else if (data['status'] == 'success')
            {

            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown)
        { 
            alert("Status: " + textStatus); alert("Error: " + errorThrown); alert("Message: " + XMLHttpRequest.responseText);
        }
    });
};

最佳答案

通过编码:

dataType: 'json',

您告诉 jQuery 在响应中期望一个 JSON 字符串(来自后端,即我们的 PHP 代码)。因此在回调中,jQuery 解析字符串,由于您没有从后端接收到有效的 JSON 字符串,它无法解析它,并抛出此解析器错误。

编辑:参见 jQuery 文档:

 dataType (default: Intelligent Guess (xml, json, script, or html))

Type: String The type of data that you're expecting back from the server.

来自 http://api.jquery.com/jquery.ajax/

关于javascript - JSON Stringify 和 AJAX 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28323906/

相关文章:

php - 如何使用 Zend Framework 显示/隐藏菜单项

php - SELECT 所有数据行,但消除单列中具有重复数据的行

javascript - onSubmit 在 php 脚本的开头显示 DIV

javascript - 尝试从js中的另一个文件调用变量时出错

javascript - Jquery 多选事件处理程序

javascript - 使用 JQuery 从 PSD 图层创建动画帧

javascript - 如何隐藏 html 表中具有合并标题的列

php - 在PHP中,如何在表格中显示数组内容

jquery css div 图像不出现

javascript - Material Design Lite 和 jQuery,平滑滚动出现问题