Невозможно получить данные с помощью сообщения AJAX в Laravel

Я пытаюсь отправить некоторые переменные (данные), один - текст флажка, а другой - значение в поле textarea на контроллер в Laravel через ajax, ниже приведен сценарий:

<script>
    $('#btn1').on('click', function() {

        $('input[type = "checkbox"]').on('click', function() {
        var aa=$(this).next('label').text();
        var bb=$('textarea#txt2').val();
        $.ajaxSetup({
            headers:
                {'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')}
        });
           $.ajax({
            type: "POST",
            url: "/masterdata",
            //dataType: 'json',
            data: {aa,bb},
            success:function(){
            console.info(data);    
       }
        ,error:function(){ 
            console.info("Error!!!!");
       }    
    });
    });
    }); 
     </script>

При попытке получить значения запроса в контроллере отображается только токен запроса, а функция ajax также не отображает сообщение об успешном завершении или ошибке. Что мне здесь не хватает?

Проверяли ли вы в средствах разработки своего браузера, правильно ли отправляются данные на сервер?

Jerodev 10.12.2018 10:30

Я это сделал, и я вижу токен, а также некоторые другие значения запроса, но не те, которые я пытаюсь отправить через AJAX.

MVS 10.12.2018 10:32

Любой код ошибки, который вы получаете ?? 500, 405

Shubh 10.12.2018 10:32

Нет, 200, это должно означать, что POST работает нормально>

MVS 10.12.2018 10:33

Вы можете проверить мой ответ -stackoverflow.com/a/47653566/7849549, я сомневаюсь, что вы отправляете запрос ajax

Shubh 10.12.2018 10:35

Я также указал маршрут для метода post, поэтому я не могу понять, что здесь нужно сделать.

MVS 10.12.2018 10:38

@MVS Есть две ошибки, проверьте мои ответы

Bhavin Solanki 10.12.2018 11:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
385
4

Ответы 4

Попробуйте свои данные в этом формате:

data:{'posa': aa, 'posb': bb},

и

    success:function(data){
        console.info(data);    
   }

Надеюсь это поможет.

По-прежнему не могу просмотреть их на вкладке ответов.

MVS 10.12.2018 11:07

Могу я взглянуть на код для лучшего понимания?

kshitij 10.12.2018 11:13

Значит, в этом нет ничего плохого? Вы тоже можете просмотреть ответ?

MVS 10.12.2018 11:26

Да, я получаю ответ при использовании вашего формата запроса ajax, ничего не могу сказать о вашем бэкэнд-коде (нужно проверить, чтобы быть уверенным). @MVS

kshitij 10.12.2018 11:29

вам нужно установить переменную для успеха ajax следующим образом:

$.ajax({
            type: "POST",
            url: "/masterdata",
            //dataType: 'json',
            data: {aa,bb},
            success:function(response){
            console.info(response);    
       }
        ,error:function(){ 
            console.info("Error!!!!");
       }    
});

Я обнаружил две проблемы в вашем запросе ajax.

  1. вам нужно изменить data: {aa,bb}, на объект типа data: {aa : aa, bb : bb},
  2. Ваш журнал успешных ответов неверен. Текущий код success:function(), он должен быть success:function(data)

Полный вывод нового кода:

<script>
    $('#btn1').on('click', function() {

        $('input[type = "checkbox"]').on('click', function() {
        var aa=$(this).next('label').text();
        var bb=$('textarea#txt2').val();
        $.ajaxSetup({
            headers:
                {'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')}
        });
           $.ajax({
            type: "POST",
            url: "/masterdata",
            dataType: 'json',
            data: {aa : aa, bb : bb},
            processData: false,
            cache: false, 
            async :false,
            success:function(data){
            console.info(data);    
       }
        ,error:function(){ 
            console.info("Error!!!!");
       }    
    });
    });
    }); 
</script>

Чтобы получить значение параметра в контроллере, используйте

 /**
 * Store.
 *
 * @param  Request  $request
 * @return Response
 */
public function store(Request $request)
{
    $aa = $request->input('aa');
    $bb = $request->input('bb');
    //Your code here
}

Эй, я тоже пробовал это, но разве я не могу просмотреть передаваемые здесь данные, то есть aa и bb в параметрах / ответе с помощью инструментов разработчика ?,

MVS 10.12.2018 11:23

@MVS, как вы пытаетесь получить параметр. не могли бы вы поделиться?

Bhavin Solanki 10.12.2018 11:25

@MVS также поделится маршрутом, который вы установили

Bhavin Solanki 10.12.2018 11:26

Маршрут: Route :: post ('/ masterdata', 'MasterdataController @ store');

MVS 10.12.2018 11:27

Параметры принимаются через var aa, bb.

MVS 10.12.2018 11:27

@MVS я имею в виду в контроллере, как вы пытаетесь получить параметр?

Bhavin Solanki 10.12.2018 11:52

Он возвращает мне нулевое значение.

MVS 10.12.2018 11:59

@MVS можете ли вы получить значение aa и bb в событии щелчка и до вызова ajax?

Bhavin Solanki 10.12.2018 12:05

@MVS обновил мой ответ добавил processData: false,cache: false, async :false,, попробуйте это

Bhavin Solanki 10.12.2018 12:09

Пробовал, все еще не работает, и да, я смог получить значения aa и bb вне функции ajax

MVS 10.12.2018 13:13

@MVS, пожалуйста, добавьте html к своему вопросу, чтобы мы получили больше информации

Bhavin Solanki 12.12.2018 10:58

буду добавлять его когда-нибудь, извините за задержку ответа.

MVS 12.12.2018 19:30
<script>
    $('#btn1').on('click', function() {

        $('input[type = "checkbox"]').on('click', function() {
        var aa=$(this).next('label').text();
        var bb=$('textarea#txt2').val();
        $.ajaxSetup({
            headers:
                {'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')}
        });
           $.ajax({
            type: "POST",
            url: "/masterdata",
            //dataType: 'json',
            data: 'aa=test'+'&bb=test',
            success:function(){
            console.info(data);    
       }
        ,error:function(){ 
            console.info("Error!!!!");
       }    
    });
    });
    }); 
     </script>

Что здесь означает aa = test?

MVS 10.12.2018 13:14

aa и bb - это переменные, а test - это строка. Вы также можете отправлять данные на сторону сервера, как это. данные: 'aa =' aa + '& bb =' bb,

Priya Goud 10.12.2018 13:25

Другие вопросы по теме