Я изучаю AngularJS 1.5.8 + Laravel 5.3.17 + PHP 7, размещенный на IIS / Windows 10, после этого руководство.
При отправке HTTP AngularJS $ resource.delete () в Laravel, я получаю сообщение об ошибке: 405 Method Not Allowed
и ниже сообщение об ошибке Laravel:
php artisan route:list
дает мне следующую таблицу маршрутов. Я ожидаю, что УДАЛИТЬ по маршруту time.destroy
,
На IIS я попытался установить PHP на обработчик, чтобы принимать все HTTP-глаголы безрезультатно.
Фильтрация запросов IIS для явного разрешения DELETE также не работает.
HTTP GET и PUT глаголы работают нормально. Как включить глагол DELETE?
Заранее спасибо!
Я обнаружил, что причина в том, что я случайно передал Laravel значение id: null.
var Time = $resource('api/time/:id'); //using angular-resource.js
Time.delete({id:null}).$promise.then(function(success) {
console.log(success);
}, function (error) {
console.log(error); // HTTP error 405, Method Not Allowed
});
Возвращение сообщения об ошибке 405 действительно вводит в заблуждение. Интересно, как я могу переопределить это поведение и вернуть более значимое сообщение об ошибке.
Надеюсь, что это поможет другим бедным людям искать правильные места, не тратя 2 дня на поиск документов на веб-сервере!
Других решений пока нет …