Ajax 使用 Symfony 4

Ajax with Symfony 4

我正在尝试将 Ajax 与 Symfony 4 连接。我需要向我的控制器发送一些数据。

JavaScript:

$(function() {
    $('#sortable').sortable({
        axis: 'y',
        opacity: 0.7,
        update: function(event, ui) {
            var list_sortable = $(this).sortable('toArray').toString();

            $.ajax({
                url: 'path(app_bundle_route)',
                type: 'POST',
                dataType: 'json',
                data: {list_order:list_sortable},
                success: function(data) {
                    console.log("xyxy");
                }
            });
        }
    });
});

控制器:

/**
  * @Route("/admin/pages/reorder", name="admin_pages_reorder")
  * @return \Symfony\Component\HttpFoundation\Response
 */
 public function reorder(Request $request):Response
 {
   var_dump($request->getContent());
   die;
 }

我只收到 404:

http://localhost:8000/admin/path(admin_pages_reorder).

甚至添加大括号 {{ path(...) }} 都没有帮助。

我提出这个问题后马上就解决了。

您必须将 {{ path(route name) }} 直接放入 .twig,而不是外部 .js 文件

像这样 javascript html 中的代码:

var requestPath = '{{path(app_bundle_route)}}';

并在js文件中使用变量名

实际上,这对我有用:

var requestPath = "{{path('app_bundle_route')}}";