gpt4 book ai didi

javascript - JQuery Ajax 不向 PHP 发送数据

转载 作者:行者123 更新时间:2023-12-02 17:48:47 24 4
gpt4 key购买 nike

下面的 myscript.js 正在输出:

[{"orcamento":"10","atual":"20","desvio":"","data":"2015-01-01","nome_conta":"BBB","nome_categoria":"abc","nome_entidade":"def"}]

myscript.js:

if (addList.length) {
$.ajax($.extend({}, ajaxObj, {
data: { "addList": JSON.stringify(addList) },
success: function (rows) {
$grid.pqGrid("commit", { type: 'add', rows: rows });

},
complete: function () {
$grid.pqGrid("hideLoading");
$grid.pqGrid("rollback", { type: 'add' });
$('#consola').text(JSON.stringify(addList));
}
}));
}

上面的 JSON 数据必须发送到下面的 script.php:

if( isset($_POST["addList"]))            
{
$addList = json_decode($_POST["addList"], true);
var_dump ($addList);
echo "test";
exit();
}

虽然数据是正确的并且正在调用 myscript.php,但它没有返回任何内容。我得到:

NULLtest

我尝试使用 GET,而不是 POST,但结果是相同的,上面的代码有什么问题?

编辑:这是 ajax 请求中使用的 ajaxObj:

var ajaxObj = {
dataType: "json",
url:"../myscript.php",
type: "POST",
async: true,
beforeSend: function (jqXHR, settings) {
$grid.pqGrid("showLoading");
}
};

最佳答案

来自 json_decode 上的 PHP 文档:

如果json无法解码或者编码数据深度超过递归限制,则返回NULL。

因此,您的 JSON 数据中很可能存在一些错误,导致 json_decode 无法正确解析它,我已经通过 jsonlint 运行了该片段它确实表明它是有效的 JSON,但值得检查发送到服务器的更大数据样本是否存在不一致。

除此之外,您在发送到服务器之前对数据对象调用 JSON.stringify 是否有任何原因?我会尝试将对象本身作为 AJAX 调用的数据参数发送,如下所示:

        $.ajax($.extend({}, ajaxObj, {
data: { "addList": addList },
success: function (rows) {
$grid.pqGrid("commit", { type: 'add', rows: rows });

},
complete: function () {
$grid.pqGrid("hideLoading");
$grid.pqGrid("rollback", { type: 'add' });
$('#consola').text(JSON.stringify(addList));
}
}));

看看这是否有帮助:

编辑

我应该在我原来的答案中注意到,你不需要对发布的数据调用 json_decode,jQuery 会为你正确地将数据编码为发布参数;它应该可以在 PHP 脚本中作为关联数组进行访问,请尝试替换 PHP 中当前的 var_dump 语句 var_dump($_POST['addList'][0]['orcamento']); 并且您应该可以了。

关于javascript - JQuery Ajax 不向 PHP 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com