使用IIS,AngularJS和Laravel删除MethodNotAllowedHttpException

时间:2016-10-09 06:39:01

标签: php angularjs laravel-5 iis-express http-status-code-405

我正在学习AngularJS 1.5.8 + Laravel 5.3.17 + PHP 7托管在IIS / Windows 10上,遵循tutorial

在向Laravel发送HTTP AngularJS $ resource.delete()时,出现错误:405 Method Not Allowed和以下Laravel错误消息:

enter image description here

php artisan route:list为我提供了以下路线表。我希望DELETE路由到time.destroy

enter image description here

在IIS上,我尝试将PHP设置为handler以接受所有HTTP谓词无效。

enter image description here

IIS请求过滤以明确允许DELETE也无法正常工作。

enter image description here

HTTP GET和PUT动词工作正常。如何启用DELETE动词?

提前致谢!

1 个答案:

答案 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天时间搜索网络服务器文档!