我正在学习AngularJS 1.5.8 + Laravel 5.3.17 + PHP 7托管在IIS / Windows 10上,遵循tutorial。
在向Laravel发送HTTP AngularJS $ resource.delete()时,出现错误:405 Method Not Allowed
和以下Laravel错误消息:
php artisan route:list
为我提供了以下路线表。我希望DELETE路由到time.destroy
。
在IIS上,我尝试将PHP设置为handler以接受所有HTTP谓词无效。
IIS请求过滤以明确允许DELETE也无法正常工作。
HTTP GET和PUT动词工作正常。如何启用DELETE动词?
提前致谢!
答案 0 :(得分:0)
我发现原因是因为我不小心将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天时间搜索网络服务器文档!