Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax Symfony2中的XmlHttpRequest_Ajax_Symfony_Xmlhttprequest_Request_Symfony 2.1 - Fatal编程技术网

Ajax Symfony2中的XmlHttpRequest

Ajax Symfony2中的XmlHttpRequest,ajax,symfony,xmlhttprequest,request,symfony-2.1,Ajax,Symfony,Xmlhttprequest,Request,Symfony 2.1,下面是我的问题。在Symfony2.1控制器中,我收到一个Ajax调用。如果使用请求对象,则无法获取发送的参数。如果我使用PHP\u请求对象,就会找到参数! 我可以确认请求是XHR,如果有关系的话。 这是我的密码: public function savedataAction(Request $request){ if($request->isXmlHttpRequest()) echo 'Ajax Call'; $param1 = $request->reques

下面是我的问题。在Symfony2.1控制器中,我收到一个Ajax调用。如果使用
请求
对象,则无法获取发送的参数。如果我使用PHP
\u请求
对象,就会找到参数! 我可以确认请求是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调用是由提供的文件上传器jQuery插件发送的。

通常是它的:

// retrieve GET and POST variables respectively
$request->query->get('foo');
$request->request->get('bar', 'default value if bar does not exist');
看这是基本原理

编辑:

// retrieve GET and POST variables respectively
$request->query->get('foo');
$request->request->get('bar', 'default value if bar does not exist');
$request
仅当您从Symfony2网站发送表单时,才会填写您的案例。CSRF保护可能会阻止该请求

在控制器中尝试以下操作以获取请求对象:

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

Ops,对不起!我在我的示例中写错了代码。。。它是$request->request。我要纠正我的问题!但问题依然存在!我已经编辑了我的答案。问题是,您必须以另一种方式访问请求对象。当外部请求不是来自有效表单时,CSRF保护会阻止它们。我发现了问题。参数位于$request->query->get('myParam')中。我很确定使用的方法是POST而不是GET!真奇怪!我知道!但我必须完成这项工作!我要好好休息!谢谢!