我正在学习在 IIS/Windows 10 上托管的 AngularJS 1.5.8 + Laravel 5.3.17 + PHP 7,遵循此 tutorial .
在向 Laravel 发送 HTTP AngularJS $resource.delete() 时,出现错误:405 Method Not Allowed
和以下 Laravel 错误消息:
php artisan route:list
给我以下路由表。我希望 DELETE 路由到 time.destroy
。
在 IIS 上,我尝试将 PHP 设置为处理程序以接受所有 HTTP 动词,但没有成功。
明确允许 DELETE 的 IIS 请求过滤也不起作用。
HTTP GET 和 PUT 动词工作正常。如何启用 DELETE 动词?
提前致谢!
最佳答案
我发现原因是因为我不小心将 id:null 值传递给了 Laravel。
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 天的时间搜索网络服务器文档!
关于php - 使用 IIS、AngularJS 和 Laravel 删除 MethodNotAllowedHttpException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39940770/