'OK'); -6ren">
gpt4 book ai didi

javascript - json_encode 将空数组放在 json 末尾

转载 作者:行者123 更新时间:2023-11-28 19:47:56 28 4
gpt4 key购买 nike

我正在编写一个 ajax 应用程序,并且在 php 脚本中有一个函数:

public function expire_user() {
$r=array("return"=>'OK');
echo json_encode($r);
}

使用以下 javascript 调用:

$.getJSON("/users/expire_user",function(data){
alert('success');
});

问题是警报永远不会显示。我认为这是由于 json_encode 返回无效的 json,因为当我直接转到 url 时,它会显示

{"return":"OK"}[]

由于末尾有额外的“[]”,这不是有效的 json。为什么 json_encode 将空数组放在末尾以及如何摆脱它以便我可以接收有效的 json?

最佳答案

大胆猜测,但也许您应该在 PHP 函数中为 JSON 设置正确的 header ,如下所示:

public function expire_user() {
$r=array("return"=>'OK');
header("Content-type: application/json");
echo json_encode($r);
}

或者实际上将内容作为 X-JSON header 发送,如下所示:

public function expire_user() {
$r=array("return"=>'OK');
$json_data = json_encode($r);
header('X-JSON: (' . $json_data . ')');
header('Content-type: application/x-json');
echo $json_data;
}

对于使用 X-JSON 时附带的 header 应该是 application/x-json 还是普通的 application/json 有点生疏>,但添加此警告可以帮助您调试。

关于javascript - json_encode 将空数组放在 json 末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23963440/

28 4 0