使用Ajax JQuery Json和Symfony 2时没有post数据
我试图通过jQueryAjax以json格式发送一些数据,但似乎无法将发布的数据接收到de控制器的操作中 以下是JQuery/Javascript代码:使用Ajax JQuery Json和Symfony 2时没有post数据,ajax,json,symfony,post,http-status-code-301,Ajax,Json,Symfony,Post,Http Status Code 301,我试图通过jQueryAjax以json格式发送一些数据,但似乎无法将发布的数据接收到de控制器的操作中 以下是JQuery/Javascript代码: $.ajax({ type: "POST", url: "app_dev.php/ajax_save_contents", contentType: 'application/json', data: {'data':'whatever'}, dataTyp
$.ajax({
type: "POST",
url: "app_dev.php/ajax_save_contents",
contentType: 'application/json',
data: {'data':'whatever'},
dataType: "json",
success: function(data)
{
alert(data.ok);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Error : ' + errorThrown);
}
});
这是Symfony2控制器
public function ajax_save_contentsAction(Request $request)
{
if ($request->isXMLHttpRequest()) {
$r = array('ok'=>$_POST);
return new JsonResponse($r);
}
return new Response('This is not ajax!', 400);
}
这一切都很好,只是因为在控制器中我没有任何post数据
我已经尝试过的事情:
- 使用方法GET getRequest()->GET('data')进行调用 symfony替换默认的PHP全局变量
试一试
我过去对post请求的处理方式: //内部控制器
//在routing.xml中$request = $this->get('request'); $data = $request->request->get('data');
<route id="ajax_save_contentsAction" pattern="/ajax_save_contents"> <default key="_controller">Bundle:ajax_save_contents</default> <requirement key="_method">post</requirement> </route>
我猜您是用尾部斜杠定义了路线。如果这样做,Symfony将请求重定向到带有尾部斜杠的路径。尝试发布到同一个URL,但带有尾随斜杠捆绑:ajax\u保存\u内容 邮递
为了避免这类问题,考虑使用。它允许您在JS中使用与在Symfony中相同的路由。您是否有可能使用https?您的安全性的内容是什么。yml?太长,无法在此处发布。。。我要编辑帖子,我要用yml编辑路线!与之相关的代码:bm_ajax_save_contents:pattern:/ajax_save_contents/defaults:{{u controller:BMCorporativeBundle:Default:ajax_save_contents}$request = $this->get('request'); $data = $request->request->get('data');
<route id="ajax_save_contentsAction" pattern="/ajax_save_contents"> <default key="_controller">Bundle:ajax_save_contents</default> <requirement key="_method">post</requirement> </route>