Laravel 4 - ошибка 405 при RESTful DELETE

У меня есть маршрут, определенный ниже:

Route::resource('api/invoice', 'InvoiceController');

В моем контроллере есть function destroy($id)

При отправке запроса DELETE на /api/invoice с параметром id: 2 as я получаю сообщение об ошибке 405. Я попытался получить доступ к этому маршруту из Postman и напрямую из кода javascript, но безуспешно...

Любые идеи?


person LEM01    schedule 06.10.2014    source источник
comment
Можете ли вы показать свой код javascript, из которого вы вызываете маршрут?   -  person Jared Eitnier    schedule 07.10.2014
comment
Это http-вызов angularjs: $http.delete(this.config.BASE_API_URL+'/invoice', {'id': '2'}).success(function(data) { if (data.code = 1) { console .log(успех);} else { console.log(ошибка проверки);} });   -  person LEM01    schedule 07.10.2014


Ответы (2)


Вы сказали I get a 405 error, и это из-за неправильного HTTP Method, в вашем Resource Controller у вас есть метод destroy, и в этом случае этот метод доступен с помощью запроса DELETE. Поэтому убедитесь, что вы отправляете DELETE запрос для этого.

Вы можете запустить следующую команду из терминала/командной строки:

php artisan routes

Он выведет маршруты с их именами и URL, поэтому найдите маршрут и проверьте метод запроса и URL для доступа к этому методу. Проверьте Метод ошибки 405 HTTP не разрешен для получения дополнительной информации. Если вы используете JavaScript/AJAX для вызова метода destroy, проверьте этот ответ.

person The Alpha    schedule 07.10.2014
comment
php artisan route возвращает список маршрутов, где у меня есть: DELETE api/invoice/{invoice}, как и ожидалось. Как я уже сказал, я пробовал использовать как js, так и postman chrome ext, который создает HTTP-запрос DELETE. - person LEM01; 07.10.2014
comment
Хорошо, нашел проблему ... действительно глупо, мой URL-адрес был неправильным: /api/invoice?id=1 вместо /api/invoice/1. Никогда не работайте после полуночи после полного рабочего дня ;-) Спасибо за помощь! - person LEM01; 07.10.2014
comment
@ LEM01, добро пожаловать, и кстати, я работаю в полночь, с 12 до 6 утра - лучшее время для меня :-) - person The Alpha; 08.10.2014

Возвращена ошибка 405, поскольку URL-адрес запроса не соответствует URI DELETE:

Ожидаемый URI уничтожения: DELETE api/invoice/{invoice} Используемый URI уничтожения: DELETE api/invoice?id=1

Так просто, как, что...

person LEM01    schedule 07.10.2014