Отправить запрос на страницу php с помощью ajax - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь отправить текст, набранный с помощью ajax, на страницу php, которая выполнит запрос, используя полученный текст. Я хочу знать, как отправить значение переменной nmClient на страницу php. Я попробовал следующий код, и возвращение было 500 (Internal Server Error). Я использую фреймворк Symfony

Jquery

            var name = $("#name").val();

            $.ajax({
                url: "../search",
                type: "POST",
                data: {'name':name},
                dataType: "json"

            }).done(function(response) {
                console.log(response);

            }).fail(function(jqXHR, textStatus ) {
                console.log("Request failed: " + textStatus);

            }).always(function() {
                console.log("done");
            });

PHP

public function searchAction(Request $resquest)
{

    if ($request->isXMLHttpRequest()) {
        $name = $request->get('name');
        return new JsonResponse(array('name' => $name));
    }

    return new Response('This is not ajax!', 400);
}

1 Ответ

0 голосов
/ 16 мая 2018

Я полагаю, вы пытаетесь получить доступ к параметру name в неправильном месте.Метод get() доступен для экземпляра ParameterBag, а не для экземпляра Request.Попробуйте следующее:

$name = $request->request->get('name');

По документам здесь :

Каждое свойство является экземпляром ParameterBag (или подклассом), которыйкласс держателя данных:

  • запрос: ParameterBag;
  • запрос: ParameterBag;
  • cookie: ParameterBag;
  • атрибуты: ParameterBag;
  • файлы: FileBag;
  • сервер: ServerBag;
  • заголовки: HeaderBag.

Все экземпляры ParameterBag имеют методы для извлечения и обновления своих данных:

  • get () Возвращает параметр по имени.

Вот пример с той же страницы:

// the query string is '?foo[bar]=baz'   
$request->query->get('foo');

В документацииВ этом примере параметры передаются с помощью метода GET в виде строки запроса, но они получают к ним доступ через экземпляр query ParameterBag.Вы захотите использовать экземпляр request Parameter Bag, поскольку ваши параметры передаются методом POST .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...