Symfony ajax响应但带标题:HTTP / 1.0 200 OK Cache-Control:no-cache Date

时间:2013-11-19 15:16:08

标签: php ajax http symfony header

我遇到了Symfony和ajax电话的麻烦。

我在使用XAMPP 1.8.2的Windows 8上使用本地服务器。

每一件作品都很好,但是当我接受回应时我会在正确的文字下面有这个:

HTTP/1.0 200 OK Cache-Control: no-cache Date: Tue, 19 Nov 2013 14:58:18

为什么?

我的代码:

在底部的HTML(Twig)中:

$.ajax({
url: "{{ path('score') }}",
data: { id: scoreid, value: value },
dataType: 'json',
type: 'POST',
success: function (data) {
    if(data.responseCode==200 ){           
    $('#score').html(data.score);
    $('#score').css("color","green");
            }
else if(data.responseCode==400){
    $('#score').html(data.score);
    $('#score').css("color","red");
     }
     else{
    alert("An unexpeded error occured.");
    $('#score').html(data);
      }
            },
  error: function (jxhr, msg, err) {
    $('#score').html('<span style="color:red">Error!</span>');
     }
});

控制器“得分”:

class scoreController extends Controller
{

    public function onepointAction(Request $request) {

        ....some logical...

            $points = self::pointsAction($id);

            $return=array("responseCode"=>200, "score"=>"Score: ".$num.".", "goal"=>"".$points);
        }

        else {

            $return=array("responseCode"=>400, "score"=>"No good!");
        }

        $return = json_encode($return);
        return new Response($return,200,array('Content-Type'=>'application/json'));
    }

    public function pointsAction($id) {

        ......some logical query... ended by:
            ->getQuery();

        $pointsOk = $query->getResult();

        $avgScore = $avgScore[0]["score_avg"];

        $numScore = $avgPoints[0]["score_count"];

        $points = ("Scores: ".$avgScore."Goals: ".$numScore);

        return new Response($points);
    }
}

我犯错误的地方?

2 个答案:

答案 0 :(得分:5)

我找到了解决我的大问题的方法:

$ points = ->getContent()

结尾处的

self::pointsAction($id);

答案 1 :(得分:0)

这是很正常的,因为你正在渲染一个完整的“Response”对象,它也包含标题。

你看到的是什么

HTTP/1.0 200 OK Cache-Control: no-cache Date: Tue, 19 Nov 2013 14:58:18

是控制器答案中包含的标题。

如果要直接渲染JSon,则应考虑使用JSonResponse对象而不是Response对象。 (FQCN:Symfony\Component\HttpFoundation\JsonResponse