2016-10-27 9 views
0

Я хочу отправить запрос на отправку с помощью ajax в контроллер в laravel. Запрос ajax отправляет два входных аргумента, и я хочу, чтобы контроллер нашел столбец в базе данных с первым аргументом, а затем установить атрибут name со вторым входным аргументом. Но у меня есть это сообщение об ошибке в консоли 500 (Internal Server Error). ФункцияPOST 500 (Внутренняя ошибка сервера) Ajax

Ajax:

var $emailInput = $('input[name=eemail]').val(); 
var $finduser = $('[name=userName]').val(); 

$.ajax({ 
     type:"POST", 
     url:'/code/task1/public/editUserAdmin', 

     data: { 
      'emailInput' : $emailInput, 
      'finduser' : $finduser, 
      }, 
      success:function(data){ 

     // $("#editEmail").attr("readonly", true); 
     // $("#editEmail").val(data[0].name); 

      alert("OK"); 
      } 

    }); 

Маршрут:

функция
Route::post('/editUserAdmin', '[email protected]'); 

Контроллер:

$findUserInput = $request->input('finduser'); 
     $user = User::where('name',$findUserInput)->first(); 


     if(!$user){ 
      return response()->json(['status'=>false,'Description' => 'User could not be found.']); 
     } 
      //$user->name = $request->input('nameInput'); 
      $user->email = $request->input('emailInput'); 

      $user->save(); 
} 

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

<meta name="csrf-token" content="{{ csrf_token() }}"> 

$.ajaxSetup({ 
       headers:{ 
        'X-CSRF-TOKEN' : $('meta[name="csft-token"]').attr('content') 
       } 
      }); 

     $.ajaxSetup({ 
        headers: { 
        'X-CSRF-TOKEN': $('[name="_token"]').val() 
       } 
      }); 

and this 
<h3 class="media-heading" name="userName">{{ $user->name }}</h3> 
<input type="hidden" name="_token" value="{{ csrf_token() }}"> 
<input type="text" class="form-control paddingzero" class=text-center" readonly value="Name Name"> 
<input type="text" class="form-control paddingzero" class=text-center" name="eemail" id="editEmail" readonly value="{{ $user->email }}"> 

Любая идея?

+1

Попробуйте войти ваш стороне сервера код – sensorario

+0

Переменные в секции данных, например '$ emailInput' и т. д. являются переменными php, и они не будут работать. – learner

+0

Проверка журналов сервера –

ответ

0

Ajax не имеет свойства «type». Вам необходимо будет пройти POST как метод

$.ajax({ 
    method: "POST", 
    url:'/code/task1/public/editUserAdmin', 

    data: { 
     'emailInput' : $emailInput, 
     'finduser' : $finduser, 
    }, 
     success:function(data){ 
     alert("OK"); 
    } 

}); 

Если вы находитесь в режиме dev, вы должны включить loglog/output ошибки. Вы можете просто открыть инструменты разработчика F12 (например, в хром) и посмотреть на вывод ошибки. Вероятно, это был бы метод не допускается или что-то еще.

Еще одна минута заключается в том, что я бы рекомендовал не префикс фактических переменных с помощью $, если вы не ссылаетесь на объект jquery.

var $emailInput = $('input[name=eemail]').val(); 
var $finduser = $('[name=userName]').val(); 

Вместо делать

var $emailInput = $('input[name=eemail]'); // if you need it more than once 
var email = $emailInput.val(); 

или если вы только нужно это одни лучше назвать его

var emailInput = $('input[name=eemail]').val(); 
Смежные вопросы