Laravel API, how to accept DELETE method

2020-05-07 04:36发布

I need to use my API to delete some entities, I create my controller, my methods, the routes. They works fine, all the get and put/patch method works, but with the delete one I have and error throw by my Angular app who consume this api, here is the error :

DELETE (Method Not Allowed)

In my api route file I set this :

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods:  POST, GET, OPTIONS, PUT, PATCH, DELETE');
header('Access-Control-Allow-Headers:  Content-Type, X-Auth-Token, Origin, Authorization, X-HTTP-Method-Override');

Anyone know why it's not working ?

Edit:

Here is my routes (and yes the methods are in the good controller) :

enter image description here

3条回答
该账号已被封号
2楼-- · 2020-05-07 04:52

Method not allowed is an HTTP Status code 405, and it usually translates to the lack of HTTP Verb matching that endpoint

Edit: Also, check this

e.g.

All of these SHOULD mean different things and DO different things. If you make a Request to the last url but the url isn't registered (on your routes files or wherever you place them), then that's the error it returns because it matches the name but not the verb

POST   url.com/user

GET    url.com/user

PUT    url.com/user

PATCH  url.com/user

DELETE url.com/user
查看更多
淡お忘
3楼-- · 2020-05-07 05:07

When you are posting to the Delete url, make sure you have this data in your post request:

_method=delete

this is just like an input field e.g:

<input type="hidden" name="_method" value="delete">
查看更多
爷、活的狠高调
4楼-- · 2020-05-07 05:07
登录 后发表回答