Silex:jQuery AJAX请求抛出异常 - 找不到“GET ...”的路由

时间:2014-02-25 10:23:58

标签: php jquery ajax symfony silex

我正试图在这样的点击上进行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")

1 个答案:

答案 0 :(得分:1)

错误的http请求方法:

您正在使用jQuery发送 GET 请求而不是 POST 请求。

$.ajax()默认执行 GET 请求。

Silex会抛出异常,因为您尚未为 GET 定义路由,但仅针对 POST

$app->post('..')

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

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