Laravel ajax URL возвращают ошибку 404 в реальном времени и отлично работают в локальном - PullRequest
0 голосов
/ 02 мая 2019

Где это идет не так.это мой код для AJAX

    $('.statusUpdate').click(function(){
    var update_id = $(this).attr('rel');
    var toggle_class = $(this).find('i').attr('class');
    var status = (toggle_class == 'fa fa-toggle-off')? 'Y':'N';        
    $.ajax({
        type: "POST",
        url: "/menugroup/update",
        data: {'id':update_id,'status':status},
    })
    .done(function(response){
            if(response == 'success'){
                update_class = (status=='Y')? 'fa fa-toggle-on':'fa fa-toggle-off';
                $('#status_'+update_id).find('i').attr('class',update_class);
            }
    });
});

В маршрутизаторе, который я использовал

Route::post('/menugroup/update','MenugroupController@update');

В локальном это работает нормально при генерации клика

APP_URL=http://localhost

http://127.0.0.1:8000/menugroup/update

Но в прямом эфире проект помещается в папку dinesapp

APP_URL=http://xxx.xxx.xxx.xxx/dinesapp

И при запросе ajax на вкладке живой сети отображается http://xxx.xxx.xxx.xxx/menugroup/update вместо http://xxx.xxx.xxx.xxx/dinesapp/menugroup/update, что в свою очередь возвращает ошибку 404 в Laravel.Есть ли базовый путь для настройки в Laravel?

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Вы можете сделать одну вещь, чтобы решить эту проблему:

Определите базовый URL в разделе заголовка:

<script>
   var base_url = '{{ URL::to("/") }}';
</script>

И затем вызовите ajax следующим образом:

$('.statusUpdate').click(function(){
    var update_id = $(this).attr('rel');
    var toggle_class = $(this).find('i').attr('class');
    var status = (toggle_class == 'fa fa-toggle-off')? 'Y':'N';        
    $.ajax({
        type: "POST",
        url: base_url +"menugroup/update",
        data: {'id':update_id,'status':status},
    })
    .done(function(response){
            if(response == 'success'){
                update_class = (status=='Y')? 'fa fa-toggle-on':'fa fa-toggle-off';
                $('#status_'+update_id).find('i').attr('class',update_class);
            }
    });
});
0 голосов
/ 02 мая 2019

Я понял, проблема в том, что передняя косая черта

 $.ajax({
    type: "POST",
    url: "/menugroup/update",
    data: {'id':update_id,'status':status},
})

работает с кодом ниже.Как это происходит, когда базовый URL меняется, когда мы добавляем косую черту впереди

 $.ajax({
    type: "POST",
    url: "menugroup/update",
    data: {'id':update_id,'status':status},
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...