gpt4 book ai didi

javascript - 无法通过 AJAX 将 JSON 作为字符串发送

转载 作者:行者123 更新时间:2023-11-30 00:19:27 24 4
gpt4 key购买 nike

所以我尝试将 JSON 作为字符串发送。然后我有一个 PHP 后端检索此 JSON 字符串并使用 json_decode 对其进行解析。

很遗憾,我无法将此 JSON 作为字符串发送。

这是我使用的 jQuery Ajax 脚本:

var jsonString = JSON.stringify(checkables);
console.log(jsonString);

$.ajax({
url: $url,
type: 'POST',
data: {ajaxidate: JSON.stringify(jsonString)},
contentType: "application/json; charset=UTF-8",
success: function (data)
{
// just successful callback
},
error: function ()
{
// just error callback
}
});

变量 checkables 包含作为 JSON 数据的原始表单: checkables_data

应用 JSON.stringify() 后,现在是这样的:[{"name":"name","type":"multialphanumslug","value":"AD"},{"name":"server","type":"host","value":"10.1.1.1"},{"name":"port","type":"number","value":"8080"},{"name":"authid","type":"username","值":"barryallen"}]

在后端,我有这个 PHP 脚本:

<?php
var_dump($_POST);
die();
?>

现在我想后端的 $_POST 现在应该包含这个:

数组( 'ajaxidate' => "[{\"name\":\"name\",\"type\":\"multialphanumslug\",\"value\":\"AD\"},{\"name\":\"server\",\"type\":\"host\",\"value\":\"10.1.1.1\"},{\"name\":\"port\",\"type\":\"number\",\"value\":\"8080\"},{\"name\":\"authid\",\"type\":\"username\",\"值\":\"巴里艾伦\"}]");

但是它没有收到任何东西。这是捕获的请求:

enter image description here

后端的响应?

enter image description here

我尝试使用 POSTMan 并收到了预期的正确输出:

enter image description here

这太荒谬了。

我在这个问题上停留了 2 天,试图弄清楚发生了什么或我错过了什么。任何帮助将不胜感激。

最佳答案

需要解析服务器上的数据:

$myArray = json_decode($_POST['ajaxidate']);
var_dump($myArray);

考虑一下:

<?php
$a = '[{"a": 1}]';
$b = json_decode($a);
var_dump($a);
var_dump($b);
?>

输出:

string(10) "[{"a": 1}]"
array(1) {
[0]=>
object(stdClass)#1 (1) {
["a"]=>
int(1)
}
}

dataType: 'json', tldr: 使用它!

当设置 dataType = json 时,你告诉 jQuery 来自服务器的响应应该被解释为 JSON,因此它将为你解析它并将解析的对象/数组作为成功回调的第一个参数:

$.ajax({
// ...
dataType: 'json',
success: function(myJson) {
console.log(myJson); // this will be a JSON object/array...
}
});

关于javascript - 无法通过 AJAX 将 JSON 作为字符串发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33729802/

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