小编典典

在Ajax提交上禁用Symfony 2 CSRF令牌保护

ajax

我正在构建一个通过webservices与symfony2应用程序对话的移动应用程序,我找不到在特定控制器/操作上禁用csrf保护的方法

我想将注册数据发布到此操作并使用sf2表单验证。我没有在移动应用程序中致电该表格

无法在操作中更改容器参数,因为它是冻结参数而引发异常…

我不想禁用整个应用程序的表单保护

有什么线索吗?

谢谢 !

更新:使用symfony 2.1.x

/**
 * {@inheritdoc}
 */
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'csrf_protection'   => false,
    ));
}

阅读 333

收藏
2020-07-26

共1个答案

小编典典

如果您要寻找的答案比上面的答案中建议的更简单,更快,请按以下步骤操作:

<?php

// ...

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\OptionsResolver\OptionsResolver;

class MyType extends AbstractType
{
    // ...

   public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'csrf_protection' => false,
        ));
    }
}

..或如果您使用的是旧版本(Symfony 2.0。*):

<?php

// ...

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class MyType extends AbstractType
{
    // ....

    public function getDefaultOptions(array $options)
    {
        $options = parent::getDefaultOptions($options);
        $options['csrf_protection'] = false;

        return $options;
    }
}

有关其他信息,请查阅Symfony文档


2020-07-26