首页 > 解决方案 > 从请求中获取 POST 参数

问题描述

我正在使用 Symfony4,我正在尝试从请求中获取 POST 参数。使用:

$request = Request::createFromGlobals();
$email = $request->request->get('email');

给我 null 但如果我这样做:

$request = Request::createFromGlobals();
var_dump($request->request->all());

我可以看到电子邮件参数已设置并具有一定的价值。我的问题是:我怎样才能得到那个参数值?

我在这里发布了一段代码:

/**
 * @Route("/prenota/appuntamento/salva", name="app_habiter_calendario_save", methods={"POST"})
     */
  public function salvaPrenotazione(ValidatorInterface $validator){
     $request = Request::createFromGlobals();
     $entityManager = $this->getDoctrine()->getManager();
     $prenotazioni = new Prenotazioni();
     $clienti = new Clienti();

     $email = $request->request->get('email');
     [...]
}

截图

$request = Request::createFromGlobals();
var_dump($request->request->all());

在此处输入图像描述

请求是由 AJAX 使用此功能发出的。这可能是问题的原因吗?:

function sendMailAjax(form, method, url, outputElement){
  let formData = new FormData(form);
  $.ajax({
    method: method,
    url: url,
    data: formData,
    processData: false,
  }).done(function (result) {
    if(result.message === true) {
      outputElement.css('color', 'green');
      outputElement.text('Inviato');
    }else {
      outputElement.css('color', 'red');
      outputElement.text('Errore');
    }
  });
}

标签: jqueryform-data

解决方案


在您的 AJAX 调用中,更改

let formData = new FormData(form);
  $.ajax({
    method: method,
    url: url,
    data: formData,

至:

let formData = $("form").serialize();
  $.ajax({
    method: method,
    url: url,
    data: formData,

推荐阅读