У меня проблема с AJAX постом с использованием laravel - PullRequest
2 голосов
/ 17 февраля 2020

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

Контроллер

             public function chataction(REQUEST $request)
             {   
             $chat_message = $request->get('message');
             $from_user_id=Auth::user()->id;
             $to_user_id =$request->get('myid');                  
             $user = Auth::user();
             $response = $user->Chats()->create([             

             'chat_message'=>  $chat_message,
             'from_user_id' => $from_user_id,
             'to_user_id'  => $to_user_id,
              ]);    
             $response = array(
              'status' => 'success',
              'msg' => 'Setting created successfully',
              );
              return Response::json($response);  

              }

html просмотр

          <!-- /.card-body -->
          <div class="card-footer">
          <form id="myform" action="{{route('chat.action')}}" method="post">
          {{csrf_field()}}
          <input type="hidden" name="myid" value="{{$single_chat->id}}" >
          <div class="input-group">
          <input type="text" id="chatmessage" name="message" placeholder="Type Message 
          ..." class="form-control">
          <span class="input-group-append">
          <button type="submit" name="btnsubmit" id="btnsubmit"  class="btn btn- 
          primary">Send</button>
          </span>
          </div>
          </form>
          </div>
          <!-- /.card-footer-->
         </div>

Ajax

             <script type="text/javascript">
             $(document).ready(function() {

             $("#btnsubmit").click(function(){
             event.preventDefault();
             var form_data = $("#chatmessage").val();
             $.ajax({
             url:"{{ route('chat.action') }}",
              data:   {
              "_token": "{{ csrf_token() }}",
              "form_data": form_data
              }
             dataType:"json",
             success:function(data)
            {

            }

            });
            });
            });

            </script>

Маршрут

        Route::post('chat/action','HomeController@chataction')->name('chat.action');

Ответы [ 2 ]

3 голосов
/ 17 февраля 2020

Вы также можете использовать метод .reload () внутри функции обратного вызова Ajax success.

success:function(data)
{
   setInterval('location.reload()', 3000); 
}
1 голос
/ 17 февраля 2020

Ваш javascript код неверен.

Попробуйте это:

<script type="text/javascript">
 $(document).ready(function() {

   $("#btnsubmit").click(function(){
     event.preventDefault();
     var form_data = $("#myform").serialize();
     $.ajax({
       type:"POST",
       url:"{{ route('chat.action') }}",
       data: form_data,
      dataType:"json",
      success:function(data)
      {

      }

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