PHP json_encode 字符串末尾加1

Jos*_*hua 3 javascript php ajax jquery json

我在整个项目中使用 json_encode 没有问题,除了一个实例。

我从一个页面进行了 ajax 调用,就像我在其他页面中所做的那样,由于某些奇怪的原因,生成的 json 在字符串的末尾附加了一个 1。

我的返回字符串看起来像这样

{
"overtime": "yes"
}1
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种情况?我已经从字面上注释了返回此字符串的类中的所有内容,并且我只有以下代码。

$reservation = ['overtime' => 'yes'];
return json_encode($reservation, JSON_PRETTY_PRINT);
Run Code Online (Sandbox Code Playgroud)

我的 ajax 请求是这样的

    $.ajax({
        type: 'POST',
        url: "{{ URL::action('Controllers\\PurchasesController@calculateReservation') }}",
        data: { 'arrive' : arrive, 'depart' : depart},
        dataType: 'json',
        success: function(response) {
            alert(response);
        }
    });
Run Code Online (Sandbox Code Playgroud)

警报不会触发,也不会显示任何内容,因为 json 无效,将 1 附加到字符串的末尾。

Tom*_*ech 7

你应该echo从你的控制器响应,而不是返回它:

echo json_encode($reservation, JSON_PRETTY_PRINT);
Run Code Online (Sandbox Code Playgroud)

在某些情况下(例如使用 WordPress),也需要die()事后调用。

  • 就我而言,我在“json_encode”末尾得到了 0,因为我忘记调用“die()” (2认同)