Ax ios повторяет префикс маршрута в Laravel - PullRequest
0 голосов
/ 15 марта 2020

Я не знаю, почему, когда я пытаюсь подать петицию, топор ios не получил маршрут хорошо.

Ошибка: Тогда вот ошибка , у меня есть operations.js, где я делаю топор ios сообщение на маршрут operation_calls, как вы видите ниже, но я не знаю, почему топор ios не получает только URL, который я пишет, это повторяется дважды.

const operacionLlamadasApp = new Vue({
    el: '.crud-operation-calls',
    methods:{
        storeOperations(){
            // as you see I only write it once and I expect to go there
            axios.post('operation_calls', {
                  param1 : param1,
                  param2 : param1
            })
            .then(response =>{

            })
        }
    }
});

Когда в браузере я нахожусь в этом URL, создаю новую строку: http://my-domain/operation_calls/create и нажимаю кнопку сохранения, которую я ожидаю, чтобы go в operation_calls сохранить маршрут, но я получаю эту ошибку:

Request URL: http://my-domain/operation_calls/operation_calls
Request Method: POST
Status Code: 405 Method Not Allowed

Как видите, префикс повторяется, когда я набрал его только один раз.

Также у меня есть эта ошибка в response кроме консоли браузера:

The POST method is not supported for this route. Supported methods: PUT

Я использую:

Laravel 6.*
Axios: ^0.19

Я создал маршруты, как это:

Route::group(['prefix' => 'operation_calls'], function(){
    Route::put('/{id}','OperationsCallController@update');
    Route::resource('/','OperationsCallController', ['names' => [
        'create' => 'operations.create']
    ]);
});

По сути, у меня есть маршруты это маршруты:

GET|HEAD     operation_calls            index
POST         operation_calls            store
GET|HEAD     operation_calls/create     create
PUT          operation_calls/{id}       update

Вот как я делаю метод поста, в моем blade.php у меня есть эта форма:

<div class="crud-operation-calls">
   <form role="form" method="POST" v-on:submit.prevent="storeOperations()">
    @csrf
     ...
   </form>
</div>

Кроме того, я сделал топор ios post только так:

    axios.post('', {
          param1 : param1,
          param2 : param1
    })
    .then(response =>{

    })

И вот что я получаю:

Request URL: http://my-domain/operation_calls/create
Request Method: POST
Status Code: 405 Method Not Allowed

Я не знаю, что я делаю не так. Это как передать префикс текущей страницы. Но я думаю, что ax ios просто должен go к маршруту, который я пишу в его параметре. Почему он меняется?

Что я пробовал:

Очистка кеша маршрута laravel: php artisan route:cache Очистка кеша браузера Мой .env файл в порядке APP_URL=http://my-domain/, потому что он работает с другими URL.

Ответы [ 2 ]

0 голосов
/ 15 марта 2020

Просто добавьте к вашему маршруту /, например

 axios.post('/operation_calls', {
                  param1 : param1,
                  param2 : param1
            })
            .then(response =>{

            })
0 голосов
/ 15 марта 2020

Я думаю, что вы пишете прямо с http://my-domain/operation_calls/create. Таким образом, предполагается, что относительный URL добавляет туда дополнительный URI. Попробуйте

  axios.post('{{ route('operation_calls.store') }}', {
              param1 : param1,
              param2 : param1
        })
        .then(response =>{

        })

Кроме того, удалите это <form>, потому что мы публикуем через VUE, нет необходимости в дополнительной ФОРМЕ для публикации. Использование может измениться на <form> to <div>. Не забудьте также передать токен CSRF в Vue post ()

...