Php Silex:jQuery AJAX请求引发异常-找不到“的路由”;得到……”;

Php Silex:jQuery AJAX请求引发异常-找不到“的路由”;得到……”;,php,jquery,ajax,symfony,silex,Php,Jquery,Ajax,Symfony,Silex,我试图在tr单击时调用ajax,如下所示: $.ajax({ type: "GET", url: "/segments/ajaxGetHostsSegment", data: { deelgebied: deelgebiedid }, success: function( data ) { // CHECK ID'S WITH ID'S IN FORM AND CHECK CHECKBOXES }, erro

我试图在tr单击时调用ajax,如下所示:

$.ajax({
    type: "GET",
    url: "/segments/ajaxGetHostsSegment",
    data: {
        deelgebied: deelgebiedid
    },
    success: function( data ) {
        // CHECK ID'S WITH ID'S IN FORM AND CHECK CHECKBOXES
    },
    error: function (xhr, ajaxOptions, thrownError) {
        console.log(xhr.status);
        console.log(thrownError);
    }
})
在我的路由文件中,我有:

$app->get('/segments/ajaxgethostssegment', 'Segments\Controller\IndexController::ajaxGetHostsSegment')->bind('segments.gethosts');
我的控制器操作:

public function ajaxGetHostsSegment(Application $app, Request $request)
{
    $deelgebied = $request->request->get('data');
    var_dump($deelgebied);
    die();
}
但我总是犯错误:

No route found for "GET /segments/ajaxGetHostsSegment" (from "http://mext-pst.localhost:8080/segments/view/PSS1400023")

错误的http请求方法:

使用jQuery发送的是GET请求而不是POST请求

默认情况下,
$.ajax()
执行GET请求

Silex抛出异常,因为您没有为GET定义路由,而只为POST定义路由

解决方案:将请求类型添加到
$.ajax

$.ajax({
    type: "POST",
    // ...
});

为什么您刚刚删除了
$app->post()
部分。。。并在您的问题中添加了
类型:“GET”
?现在我的答案不再合适了。那太令人失望了。。。停止做这些编辑,否则没有人会再帮你了。你应该提出一个新问题。您现在遇到了一个完全不同的问题。我需要从数据库获取数据,我不需要向数据库发布某些内容。是的,但最初的问题是您创建了一个get请求,并且只定义了一个发布路由。。。现在完全不同了。对不起,我没有时间。下次打开一个新问题,不要编辑原始代码(可能附加新版本),除非粘贴时出错。
$.ajax({
    type: "POST",
    // ...
});