2016-07-09 4 views
0

Я использую этот маршрут:как отправить на маршрут URL в Laravel

Route::post('cp/admin/checkUserPassLogin','Panel\[email protected]'); 

и мой контроллер:

enter image description here

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 
use App\Http\Requests; 
use DB; 
use App\Quotation; 
.... 
public function checkUserPassLogin(Request $request) 
{ 
    echo 'test'; 
    return 'test'; 

} 

и в моей точки зрения:

function login() 
    { 
     console.log('test'); 
     var email = $('#email_admin').val(); 
     var pass = $('#pass_admin').val(); 

     if(!email || !pass) 
       return ; 

     console.log(email+'-'+pass); 
     $.post("{{ url('/cp/admin/checkUserPassLogin') }}", {username:email,pass:pass}, function (data) { 


      console.log(data); 


      if(data == 'ok') 
      { 
       window.location.href = ".........."; 
      }else{ 

      } 

     }); 
    } 

console.log(email+'-'+pass); печатает мои значения, но console.log(data); ничего не возвращает.

+0

В контроллере удалите строку 'echo' и посмотрите, работает ли она. – Alfa

+0

Это не работает !!!! –

+0

Если вы используете Linux, как насчет использования curl? Сделайте запрос ** POST **, например: 'curl --data" email = test & pass = test "http: // yourapp.domain/cp/admin/checkUserPassLogin'. Ваш «завиток» что-то напечатал? – Alfa

ответ

2

Несомненно, это проблема CSRF. В Laravel 5 все запросы должны проходить через промежуточное программное обеспечение, которое не позволяет отправлять POST-запросы без правильного токена CSRF. Для того, чтобы решить эту проблему:

Где-то в вашем просмотре оный:

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

Тогда в вашем Аяксе почтовых данных добавить:

'_token': $('meta[name="csrf-token"]').attr('content') 

Это будет выглядеть следующим образом:

$.post("{{ url('/cp/admin/checkUserPassLogin') }}", {username:email, pass:pass, '_token': $('meta[name="csrf-token"]').attr('content')}, function (data) {...}); 

Одна из альтернатив - добавить csrf-token прямо на ваш javascript, как вы сделали по URL-адресу:

$.post("{{ url('/cp/admin/checkUserPassLogin') }}", {username:email, pass:pass, '_token': "{!! csrf_token() !!}"}, function (data) {...}); 
0

Изменить

$.post("{{ url('/cp/admin/checkUserPassLogin') }}", {username:email,pass:pass}, function (data) { 

Для

$.post("your route here along with the base url", {username:email,pass:pass}, function (data) { 

Пример:

$.post("BASE_URL + "admin/checkUserPassLogin") 

Где base_url находится где-то в вашей точки зрения, предпочтительно базовый вид:

<script type="text/javascript"> 
    var BASE_URL = '{{ asset('/') }}'; 
</script> 
Смежные вопросы