当前位置: 首页 > 知识库问答 >
问题:

Symfony4表单处理请求未提交请求数据

卫松
2023-03-14

当我在symfony4中提交json http post请求时,requesthandling不会提交我的表单

我尝试将“方法”选项设置为要发布的表单,但似乎没有帮助。我将application/json头用于Content-type和Accept。

表格:

class SecurityUserForm extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username', TextType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
                'data_class' => SecurityUser::class,
                'csrf_protection' => false,
            ]
        );
    }

}

控制器:

    public function postAction(Request $request,  SerializerInterface $serializer, UserPasswordEncoderInterface $encoder)
    {
        try {
            $user = new SecurityUser();
            $form = $this->createForm(SecurityUserForm::class, $user,
                array(
                    'method' => 'POST'
                ));
            $form->handleRequest($request); //NOT SUBMITTING THE FORM
            if ($form->isSubmitted() && $form->isValid()) {
                dump("submitted");
            } else {
                //Stuff
            }

        } catch (\Exception $e) {
            //Exception handling stuff
        }
    }

还有我的http帖子:

标头:内容类型:应用程序/json接受:应用程序/json

正文:{“用户名”:“dunglas”}

我希望$表格-

dump($form->isSubmitted()) //false

它返回false。我做错了什么?

共有1个答案

尹冠宇
2023-03-14

您需要更改$form-

 类似资料:
  • 请求处理 fpm_run()执行后将fork出worker进程,worker进程返回main()中继续向下执行,后面的流程就是worker进程不断accept请求,然后执行PHP脚本并返回。整体流程如下: (1)等待请求: worker进程阻塞在fcgi_accept_request()等待请求; (2)解析请求: fastcgi请求到达后被worker接收,然后开始接收并解析请求数据,直到req

  • 问题内容: 我正在尝试将浏览器定向到其他页面。如果我想要GET请求,我可能会说 但是,除非使用POST请求,否则我尝试访问的资源将无法正确响应。如果不是动态生成的,我可能会使用HTML 然后,我只需从DOM提交表单。 但是我真的很想让我说的JavaScript代码 最好的跨浏览器实现是什么? 编辑 对不起,我不清楚。我需要一个更改浏览器位置的解决方案,就像提交表单一样。如果XMLHttpReque

  • 以下文件是我试图向nodejs(Express)服务器提交POST请求的过程。req.body不会从我的表单中填充任何类型的数据。我已经做了很多搜索,发现许多解决这个特殊问题的方法包括在我的路线之前移动身体解析器,并确保在表单字段中包含名称。 应用程序。js 指数玉 指数js(从app.post('/signup',…)调用) 安慰日志

  • 从浏览器到我的自助主机OWIN WebAPI的所有预飞行请求都不会被中间件处理。如果我从邮递员提出选项请求,它们将被处理。为什么是这样的行为? 请求URL:http://localhost:9000/api/v1/conversations/create?connectionId=13509f44-eacb-4950-8cc8-71bd37098975 请求方法:选项 状态代码:401未经授权的远

  • 我试图对我写的rest api执行一个put请求,但它总是返回400-bug请求。 java.io.IO异常:服务器返回HTTP响应代码:400为URL:http://localhost:8000/api/v0/contacts/2sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源) 我可以用firefox rest客户端

  • 类项目: hbm文件: 方法如下: