Javascript AngularJS PUT vs Symfony2 PUT方法。更新不';行不通

Javascript AngularJS PUT vs Symfony2 PUT方法。更新不';行不通,javascript,php,angularjs,symfony,Javascript,Php,Angularjs,Symfony,我正在用symfony2.4和angularjs构建应用程序。在angular中,我创建了资源: app.factory('Tasks', ['$resource', function($resource) { return $resource( 'api/tasks/:taskid', null, { 'update': { method:'PUT' } }); }]); 当我尝试这样更新时:Tasks.update({tas

我正在用symfony2.4和angularjs构建应用程序。在angular中,我创建了资源:

app.factory('Tasks', ['$resource', function($resource) {
    return $resource( 'api/tasks/:taskid', null,
         {
            'update': { method:'PUT' }
        });
}]);
当我尝试这样更新时:
Tasks.update({taskid:task.id},task)我收到以下错误:

{"code":400,"message":"Validation Failed","errors":{"errors":["The CSRF token is invalid. Please try to resubmit the form."],"children":{"timeStart":{"children":{"date":[],"time":[]}},"timeStop":{"children":{"date":[],"time":[]}},"project":[],"descriptionTask":[],"isCompleted":[],"isVisible":[]}}}
当我在symfony中构建表单,然后更新任何任务时,它都会工作。但我注意到AngularJS不会通过POST发送任何数据。它通过JSON发送(?或者只是发送我给出的这个对象),我认为这就是问题所在。我怎样才能修理它

您需要在表单中添加
\u令牌
,即

{{ form_row(form._token) }}
到目前为止,您的表单缺少csrf令牌字段,如果您使用twig表单函数呈现表单,如
表单(表单)
,这将自动为您呈现csrf令牌字段,但您的代码显示您正在使用原始html呈现表单,如
,则您必须手动呈现该字段

或者只需在关闭表单标记之前添加
{{form\u rest(form)}

根据文件

这将渲染所有尚未为给定对象渲染的字段 形式。这是一个好主意,总是有这个地方在你的形式 因为它将为您呈现隐藏字段,并生成您忘记的任何字段 渲染更明显(因为它将为您渲染字段)

来自中@M Khalid Junaid的回答

您缺少CSRF(防伪)令牌。如何添加它?:)作为任务属性?