Проблема Laravel + Vue + Axios с методом POST - PullRequest
0 голосов
/ 22 мая 2018

Я работаю над проектом Laravel 5.6, который хранится на VPS (мы называем это «производством», несмотря на то, что такой созданной среды нет).

Мы также объединили Plesk & Github для развертывания веб-приложения из наших локальных сред на сервере вручную.

Проблема заключается в том, что я загружаю некоторые данные из API-интерфейсов, которые ониошибка возврата 405 Метод не разрешен ( GET ) ... но фактически они зарегистрированы как POST в app.js и routes/api.php.

.Лучше всего то, что в моей локальной среде они работают отлично.

Вот некоторая информация:

Сервер:

  • Ubuntu Server 14.04
  • Apache/ MySQL
  • PHP 7.2.5

Мой компьютер:

  • Windows 10 с XAMPP
  • Apache / MySQL
  • PHP 7.2.2

Инструмент разработчика в каждом браузере:

Метод запроса: GET
Код состояния: 405 Метод не разрешен

А вот код в app.js:

loadCountries: function loadCountries(total) {
    axios.post('/api/properties/countries/').then(function (response) {
        app.countries = response.data;
    });

    total = total <= this.countries.length ? total : this.countries.length;

    if (total) {
        var newArr = [];
        for (i = 0; i < total; i++) {
            newArr.push(this.countries[i]);
        }
        this.countries = newArr;
    }
},

Примечание: Если я отредактирую тот же запрос в разработкеr и отправьте его снова, но как POST-запрос он возвращает мне все в порядке, поэтому API, похоже, работает нормально на POST-запросе.

1 Ответ

0 голосов
/ 22 мая 2018

Попробуйте удалить косую черту в вашем URL.

Например,

/api/properties/countries

Замена этой строки в исходном app.js приведет к этому,

loadCountries: function loadCountries(total) {
axios.post('/api/properties/countries').then(function (response) {
    app.countries = response.data;
});

total = total <= this.countries.length ? total : this.countries.length;

if (total) {
    var newArr = [];
    for (i = 0; i < total; i++) {
        newArr.push(this.countries[i]);
    }
    this.countries = newArr;
}

},

...