PHP json_encode在字符串的末尾添加1

时间:2015-03-25 18:20:39

标签: javascript php jquery ajax json

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

我在一个页面上进行ajax调用,就像在其他页面中那样,并且由于某些奇怪的原因,生成的json会在字符串的末尾添加1。

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

{
"overtime": "yes"
}1

可能导致这种情况的原因是什么?我在字面上注释了返回该字符串的类中的所有内容,我只需要以下代码。

$reservation = ['overtime' => 'yes'];
return json_encode($reservation, JSON_PRETTY_PRINT);

我的ajax请求看起来像这样

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

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

1 个答案:

答案 0 :(得分:4)

您应该echo来自您的控制器的响应,而不是将其返回:

echo json_encode($reservation, JSON_PRETTY_PRINT);

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