2

下面是我的问题。在Symfony2.1控制器中,我收到一个Ajax调用。如果我使用该Request对象,我将无法获得发送的参数。如果我使用 PHP_REQUEST对象,则会找到参数!如果重要的话,我可以确认请求是XHR 。这是我的代码:

public function savedataAction(Request $request){  
  if($request->isXmlHttpRequest())
  echo 'Ajax Call';

  $param1 = $request->request->get('myParam'); // Nothing is returned, but $request is obviosly not null
  $param2 = $_REQUEST['myParam']; // The value is given

  ....
}

任何的想法?

PS:如果有帮助,请注意 AJAX 调用是由Valums提供的文件上传器 jQuery 插件发送的。

4

1 回答 1

1

通常它的:

// retrieve GET and POST variables respectively
$request->query->get('foo');
$request->request->get('bar', 'default value if bar does not exist');

看看这里是基本原理。

http://symfony.com/doc/current/book/http_fundamentals.html

编辑:

$request在您的情况下,仅当您从 Symfony2 站点发送表单时才会填写。CSRF 保护可能会阻止该请求。

在您的控制器中尝试此操作以获取 Request 对象:

$request = $this->get('request');

http://symfony2forum.org/threads/5-Using-Symfony2-jQuery-and-Ajax

于 2012-11-22T21:36:56.167 回答