Проблема маршрутизации вызовов в Symfony 3 Ajax

Я настраиваю простой вызов Ajax в одной из моих форм. Когда пользователь вводит символы в поле, активируется следующий Ajax-вызов:

self.modify = function (input_field) {
if ($(input_field).val().length > 5) {
$.post("{{path('get_bio_control_sample')}}", {sample_number: $(input_field).val()},
function (response) {
if (response.code == 100 && response.success) {
alert(response.sample_number);
}
}, "json");
}
};

Который предназначен для доступа к следующему действию контроллера:

class BioControlController extends Controller {
/**
* @Route("/bio_control/sample", name="get_bio_control_sample")
*/
public function getBioControlSampleAction(Request $request){

$sample_number = $request->query->get('sample_number');

$response = array("code" => 100, "success" => true, "sample_number" => $sample_number, "sample_data" => "test");

return new JsonResponse($response);
}
}

Однако, когда вызов активирован, JS возвращает ошибку:

http://127.0.0.1:8000/omics_experiment/%7B%7Bpath('get_bio_control_sample')%7D%7D 404 (Not Found)

Я получаю доступ к вызову Ajax из omics_experiment/new (который находится в OmicsExperimentController) и используя маршрут /bio_control/sample (как показано в аннотации), но это не работает. Может кто-нибудь объяснить, что я делаю не так?

я использовал этот вопрос в качестве шаблона, тот факт, что я использую Symfony 3, может означать наличие синтаксических ошибок.

1

Решение

Я просто должен был сделать это недавно. Я не эксперт по Symfony, но, поскольку я только что сделал это, я могу помочь. Использование Symfony не сильно отличается от использования статического URL. Главное, чтобы убедиться, что ваш контроллер и маршрут настроены правильно и работают без AJAX, тогда вам просто нужно использовать путь, заданный в вашем маршруте для вызова .post.

И что еще хуже, это то, что действительно трудно проверить этот тип взаимодействия. Даже ваши веточки могут привести к сбою, если они настроены неправильно.

Глядя на ваш код еще раз, я считать это может быть проблемой. Изменить это

    $.post("{{path('get_bio_control_sample')}}", {sample_number:

к этому

    $.post("/bio_control/sample", {sample_number:

Потому что я думаю, что у вас это хорошо только для шаблонов веток, поэтому, если Symfony не смотрит на ваш файл JQuery, как это делает шаблон веток, то он не поймет, как получить маршрут.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]