php - 使用 IIS、AngularJS 和 Laravel 删除 MethodNotAllowedHttpException

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

我正在学习在 IIS/Windows 10 上托管的 AngularJS 1.5.8 + Laravel 5.3.17 + PHP 7,遵循此 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 设置为处理程序以接受所有 HTTP 动词,但没有成功。

enter image description here

明确允许 DELETE 的 IIS 请求过滤也不起作用。

enter image description here

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/

相关文章:

javascript - 指令需要在元素呈现后更新数据

php - 如何在php中使用数据库中的数据设置“阅读更多”按钮

php - Laravel 表连接

javascript - 如何将上传的图片传回 html

php - MySql 查询返回每月每本书的平均章节数

javascript - 下划线从数组中删除某些属性上包含空值的对象

javascript - 在 resolve 函数中返回 promise 作为它的延续

php - 为什么 Laravel 5.6 中没有删除数据表记录

php - mysql 查询仅显示 1 个结果

woocommerce_get_availability 过滤器 Hook 中的 PHP 错误