Laravel 4 - грешка 405 при RESTful DELETE

Имам маршрут, дефиниран по-долу:

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

В моя контролер имам function destroy($id)

Когато изпращам DELETE заявка до /api/invoice с id: 2 като параметър и получавам обратно съобщение за грешка 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 за достъп до този метод. Проверете HTTP грешка 405 Методът не е разрешен за повече информация. Ако използвате JavaScript/AJAX за извикване на метода destroy тогава, проверете този отговор.

person The Alpha    schedule 07.10.2014
comment
php artisan routes, връща списъка с маршрути, където имам: 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 адресът на заявката не съответства на DELETE URI:

Очакван URI за унищожаване: DELETE api/invoice/{invoice} Използван URI за унищожаване: DELETE api/invoice?id=1

Толкова просто...

person LEM01    schedule 07.10.2014