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 JQuery Json和Symfony 2时没有post数据_Ajax_Json_Symfony_Post_Http Status Code 301 - Fatal编程技术网

使用Ajax JQuery Json和Symfony 2时没有post数据

使用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

我试图通过jQueryAjax以json格式发送一些数据,但似乎无法将发布的数据接收到de控制器的操作中

以下是JQuery/Javascript代码:

    $.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请求的处理方式:

    //内部控制器

    $request = $this->get('request');
    $data = $request->request->get('data');
    
    //在routing.xml中

    <route id="ajax_save_contentsAction" pattern="/ajax_save_contents">
            <default key="_controller">Bundle:ajax_save_contents</default>
            <requirement key="_method">post</requirement>
    </route>
    
    
    捆绑:ajax\u保存\u内容
    邮递
    
    我猜您是用尾部斜杠定义了路线。如果这样做,Symfony将请求重定向到带有尾部斜杠的路径。尝试发布到同一个URL,但带有尾随斜杠


    为了避免这类问题,考虑使用。它允许您在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>