Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 26.01.2017 13:48:40

Почему не проходит post ajax 500 error

Скажите я получаю 500error
php artisan route:list
POST     | ajaxController         |                  | App\Http\Controllers\AjaxController@index                              | web     
Route почему то в файле routes/web.php
Route::post('/ajaxController', 'AjaxController@index');

контроллер
class AjaxController extends Controller
{
public function index(){
   print_r($_POST);
}   //
}

Не в сети

#2 26.01.2017 14:03:29

Re: Почему не проходит post ajax 500 error

Могу ошибаться, но, вроде, с $_POST, напрямую, вообще не так все просто. Может, стоит попробовать через ларавелевский Request, и, если на то пошло, не print_r, а dd?

Изменено Androbim (26.01.2017 14:04:14)

Не в сети

#3 26.01.2017 14:05:28

Re: Почему не проходит post ajax 500 error

напишите пожалуйста опыта в Ларавеле вообще нет

тутвот этот роут прошел
Route::post('/AjaxController', function()
{
    return 'Success! ajax in laravel 5';
});

Но при этом контроллере 500 ошибка

class AjaxController extends Controller
{
public function index(Request $request){
    print_r($request);
}
}

и при этом роуте
Route::post('/AjaxController', 'AjaxController@index');

Изменено imediasun (26.01.2017 14:13:52)

Не в сети

#4 26.01.2017 14:18:00

Re: Почему не проходит post ajax 500 error

'/AjaxController' - это маршрут?
Вы меня извините, но если совсем нет опыта, то начинать нужно с чтения документации, а не с вопросов на форуме, потому что вопросы будут возникать каждые пять минут. И, мне кажется, не стоит начинать с отработки ajax-а, лучше всего было бы, на мой взгляд, для начала, построить простейшую MVC-связку.
Очень рекомендую проделать вот это https://laravel.ru/docs/v5/quickstart, еще там есть продвинутый вариант быстрого старта.

Не в сети

#5 26.01.2017 14:20:36

Re: Почему не проходит post ajax 500 error

да маршрут, я все проделал до аякса дошел, нет опыта у меня в php много но тут контроллер не принимает видимо свой реквест у него потому и спрашиваю чтобы меня поправили а маршруты видно правильно выставлены. Просто я уже на реальной задаче тренируюсь

Изменено imediasun (26.01.2017 14:21:50)

Не в сети

#6 26.01.2017 14:25:36

Re: Почему не проходит post ajax 500 error

Тогда вот, хорошая статья на эту тему Laravel Ajax Register and Login

Не в сети

#7 26.01.2017 14:30:22

Re: Почему не проходит post ajax 500 error

Мне бы практически эту задачу решить, помогите пожалуйста я только на практике усваиваю такие вещи, а регистрацию я уже сделал
Здесь видать в контроллере неправильно что то может Input какой нужен, как в контроллере ПОСТ принимается? Или Request я не правильно написал, просто напишите как бы вы написали контроллер в который пост приходит, роуты рабочие это я проверил

Изменено imediasun (26.01.2017 14:34:55)

Не в сети

#8 26.01.2017 14:37:07

Re: Почему не проходит post ajax 500 error

А никто не говорит заново делать регистрацию. Статья учит работать с ajax-ом в Laravel. Не ленитесь, почитайте. Разверните свежий проект, сделайте то, что в статье написано, убедитесь, что все работает (а оно работает, проверено), потом адаптируйте решение под свой проект. Решать за Вас практические рабочие задачи "кароч, мне надо"(С) лично я не буду.

Не в сети

#9 26.01.2017 14:38:22

Re: Почему не проходит post ajax 500 error

да не так как вы представили, но там нет контроллера в этой статье и я понять не могу

Не в сети

#10 26.01.2017 14:50:05

Re: Почему не проходит post ajax 500 error

Вот мой собственный тестовый контроллер, ничего нового:

public function testAjax() {
     $users = User::all();
     return view('users.testajax', ['users' => $users]);
}

Его дело просто отдать данные, все, как обычно. Понимать там нечего, php просто делает свое дело, возвращает html-код

Вот роут:

Route::get('/makeup/testajax', ['uses' => 'UserController@testAjax', 'as' => 'users.testajax']);

А вся ajax-цепочка расписана, по шагам, в статье.
Извините, но я из дискуссии выбываю.

Не в сети

#11 26.01.2017 15:32:37

Re: Почему не проходит post ajax 500 error

У меня пост запрос НЕ могу все таки понять как должен в моем случае выглядеть контроллер у вас все таки другой случай, если кто может помочь напишите пожалуйста
На данный момен ошибка 500
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Model;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
class AjaxController extends Controller
{


public function index(Request $request){

     if ($request->ajax()) {
         print('123');
     }
}
}

Не в сети

#12 26.01.2017 15:54:05

Re: Почему не проходит post ajax 500 error

Если POST-запрос поменять на GET ошибка остается?

Не в сети

#13 26.01.2017 15:55:27

Re: Почему не проходит post ajax 500 error

Ошибка у тебя скорее всего не из-за кода контроллера

Не в сети

#14 26.01.2017 16:48:08

Re: Почему не проходит post ajax 500 error

да ошибка остается 100% контроллер но каким он должен быть в моем случае кто скажет?

Не в сети

#15 27.01.2017 06:40:44

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Почему не проходит post ajax 500 error

Было бы не плохо увидеть код аякса, и саму ошибку (Dev Tools -> network). Тогда уже можно будит как то вам помочь.

Не в сети

#16 27.01.2017 14:59:16

Re: Почему не проходит post ajax 500 error

$.ajaxSetup({
                                headers: {
                                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                                }
                            });
                            $.ajax({
                                type: "POST",
                                url: "/AjaxController",
                                data: { name: "John", location: "Boston" }
                            }).done(function( msg ) {
                                alert( "Data Saved: " + msg );
                            });


http://prntscr.com/e0zwsv

Изменено imediasun (27.01.2017 15:00:34)

Не в сети

#17 27.01.2017 17:11:09

skiphog
Откуда: Киров, Россия
Сообщений: 26

Re: Почему не проходит post ajax 500 error

Route::post('/ajaxController', 'AjaxController@index');

В методе @index, возможно буква e или x в русской раскладке. Либо в самом контроллере в методе такая ошибка.  big_smile.
--
Не может быть такое? smile

Изменено skiphog (27.01.2017 17:13:05)

Не в сети

#18 27.01.2017 17:38:18

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Почему не проходит post ajax 500 error

Это очепятка? (Лишняя фигурная скобка)

imediasun пишет:

Скажите я получаю 500error
php artisan route:list
POST     | ajaxController         |                  | App\Http\Controllers\AjaxController@index                              | web     
Route почему то в файле routes/web.php
Route::post('/ajaxController', 'AjaxController@index');

контроллер
class AjaxController extends Controller
{
public function index(){
   print_r($_POST);
}   //
}

Изменено TrueKanonir (27.01.2017 17:39:33)

Не в сети

#19 27.01.2017 22:29:31

Re: Почему не проходит post ajax 500 error

Новобранец не подаётся )) поэтому вместо удочки дам вам рыбу
Если код на аяксе правильный то вы просто не передали значение _token
вставьте на странице откуда передаются данные

<input type="hidden" id="_token" name="_token" value="{{csrf_token()}}">

и передайте в аякс значение поля _token
А вообще, в следующий раз внимательно читайте ошибки, который выдаёт ларавел, там очень часто всё написано

Изменено Dens (27.01.2017 22:32:33)

Не в сети

#20 05.02.2017 19:29:15

Re: Почему не проходит post ajax 500 error

Ошибка 500 все еще есть код выглядит так

Этот код на странице с аякс запросом
<input type="hidden" id="_token" name="_token" value="This {{Action}} has wrong syntax and can’t be executed.">
<script type="text/javascript">
$.ajaxSetup({
headers: {
’X-CSRF-TOKEN’: $(’meta[name="csrf-token"]’).attr(’content’)
}
});
</script>
Ну естественно сам запрос

Роут
Route::post(’/MainController/ajax_usersessions’, ’MainController@ajax_usersessions’);

И контроллер

namespace App\Http\Controllers;
use Illuminate\Http\Request;

use App\Http\Requests;
use Input;
use DB;
use App\Specialization;
class MainController extends Controller
{
public function ajax_usersessions(Request $request)
{

if ($request->ajax()) {
print(’123’);
}
}
}
!!
Почему возникает 500 ошибка?

Изменено imediasun (05.02.2017 19:30:20)

Не в сети

#21 05.02.2017 19:43:22

Re: Почему не проходит post ajax 500 error

передавайте не

’X-CSRF-TOKEN’: $(’meta[name="csrf-token"]’).attr(’content’)

а значение самого поля с таким же именем

$('#_token').val()

Поймать то что передаёте можно через

$request->input('field_name');

Не в сети

#22 15.02.2017 23:21:36

Re: Почему не проходит post ajax 500 error

Объясните пожалуйста что нужно сделать толком

<input type="hidden" name="_token" id="_token" value="{!! $csrf_token !!}}" />
    <script type="text/javascript">
        $.ajaxSetup({
            headers: {
                $('#_token').val()
            }
        });
    </script>

Я вот так написал в head секции сайта
роут у меня такой
Route::post('/functions_images', 'FunctionController@index');

вот контроллер

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Request;
class FunctionsController extends Controller
{
    //
    public function index($request){

        dump($request);
    }
}

http://prntscr.com/e97ivj

Изменено imediasun (15.02.2017 23:23:18)

Не в сети

#23 16.02.2017 00:34:47

Re: Почему не проходит post ajax 500 error

<input type="hidden" name="_token" id="_token" value="{!! $csrf_token !!}}" />
    <script type="text/javascript">
        $.ajaxSetup({
            headers: {
                'X-CSRF-Token': $('#_token').val()
            }
        });
    </script>

http://prntscr.com/e98jr2

Изменено imediasun (16.02.2017 00:39:39)

Не в сети

Подвал раздела