Laravel Ajax URL не работает на производственном сервере - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть этот запрос ajax на мой проект Laravel (это простая версия, но она работает):

$.ajax({
            method: 'POST', // Type of response and matches what we said in the route
            url: '/admin/lessons/addMember/licenseMemberId', // This is the url we gave in the route
            data: {'licenseMemberId' : id},
            success: function(response){ 
                console.log(response);

                if ($.trim(response)) {
                    var actualMembers = document.getElementById("actual-member");
                }
                $('#membersModal').modal('hide');
            },  
        });

Когда я работаю локально и использую php artisan, вызов ajax работает, но когдая не развертываю на своем производственном сервере (потому что путь / admin / уроки / addMember / licenseMemberId не полный путь на сервере).Лучше всего использовать маршрут, но я не знаю как.Это таблица маршрутизации:

web                                          |
|        | POST      | admin/lessons/addMember/{licenseMemberId}                     | lessons.addMember               | App\Http\Controllers\admin\LessonController@addMember  

Есть ли способ использовать маршрут Laravel с параметром?Если нет, как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Вы не должны использовать URL-адреса в Laravel так, как вы используете их в vanila php или html, используйте функцию URL-адрес , эта функция гарантирует, что ваш маршрут будет указывать прямо на корень проекта, в вашем случаевы можете сделать что-то вроде этого

$.ajax({
        method: 'GET', 
        url: '{{URL::to('/admin/lessons/addMember/')}}' + id, 
// Laravel will print the url and you just need to concat your id to it
        success: function(response){ 
            console.log(response);

            if ($.trim(response)) {
                var actualMembers = document.getElementById("actual-member");
            }
            $('#membersModal').modal('hide');
        },  
    });

Обратите внимание, что я использую GET, поскольку вы, похоже, извлекаете данные, а не размещаете их, однако, если вам нужно опубликовать их, ответ MisaGH - это путь, по которому нужно

0 голосов
/ 12 декабря 2018

Реальный маршрут -

admin/lessons/addMember/{licenseMemberId}   

, поэтому в javascript вам нужно вызвать

'/admin/lessons/addMember/' + id 

, где id - это переменная.В контроллере вы можете использовать идентификатор, получая

Input::get('licenseMemberId') or $request->get('licenseMemberId'); 
0 голосов
/ 12 декабря 2018

Не получать параметр в маршруте.

URL должен быть: /admin/lessons/addMember

$.ajax({
            method: 'POST', // Type of response and matches what we said in the route
            url: '/admin/lessons/addMember', // This is the url we gave in the route
            data: {'licenseMemberId' : id},
            success: function(response){ 
                console.log(response);

                if ($.trim(response)) {
                    var actualMembers = document.getElementById("actual-member");
                }
                $('#membersModal').modal('hide');
            },  
        });

А контроллер:

$member_id = request('licenseMemberId');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...