php - REST PUT 请求返回 GET 500 错误,这是否合理?

标签 php rest angularjs

我不是任何类型的 RESTful API 专家,但我在 AngularJS 应用程序中有一个简单的 PUT/DELETE 函数,到目前为止它一直按预期运行。我正在尝试确定此问题可能出在我的应用程序中,还是出在运行端点的 (php) 后端中。其他 REST 服务运行正常,服务器似乎运行良好。

此函数只调用 PUT 或 DELETE,指定为 var 方法:

     if (food.favourite === true) {
                method = "PUT";
                console.log("method is " + method)

            } else if (food.favourite === false) {
                method = "DELETE";
                console.log("method is " + method)
            }
            $http({
                method: method,
                url: $scope.URL
            }).success(function (data, status, headers, config) {
                console.log(method + " successful")
            }).error(function (data, status, headers, config) {
                    console.log(method + " not successful")
            });

我的应用程序中有一个使用不同端点的 $http GET。在我的应用程序中的任何地方都没有指向此端点的 $http GET - 我已经进行了广泛的搜索。

当我触发上面包含 $http 的函数时,控制台显示:

 method is PUT 
 GET http://localhost:8888/api/ext/51/ 500 (Internal Server Error)
 PUT not successful 

为什么我会在不成功的 PUT 请求上收到 GET 错误?这表明我的函数有问题,还是端点有问题?

感谢您帮助理解这个问题。


更新 1

来自网络面板的信息:调用上面的 $http 函数会同时触发两个请求,一个“PUT”和一个“GET”。 “PUT”返回 301 代码,“GET”返回 500 服务器错误(我认为这是可以预料的,因为此端点未设置为响应“GET”,仅响应“PUT”和“DELETE” ').

那么:为什么我的代码会生成两个使用不同方法的同时请求?

最佳答案

对于 future 寻求类似问题答案的人:尝试为调用的每个操作返回 GET 是一种标准行为(一般是 REST 还是这个实现?不确定)。这方面的证据是,如果我检查所有其他(成功的)$http 函数的网络面板,它们也有两个可见的操作:原始 PUT/GET/DELETE 等,+ GET。

我们在这些特定请求的 GET 上看到 500 错误,因为此特定端点的配置不允许 GET。这不应对此端点上的 PUT/DELETE 操作产生任何影响 - 500 错误与 PUT/DELETE 操作不起作用的原因无关。就试图解决这个具体问题而言,这是一条转移注意力的问题。

PUT/DELETE 无法正常工作的原因是服务在服务器端中断。

关于php - REST PUT 请求返回 GET 500 错误,这是否合理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19951866/

相关文章:

php - 使用 pdo 进行插入中的 BindValue 循环

javascript - 在模型更改后切换 $setValidity

javascript - AngularJS - 我的部分 Controller

angularjs - 在模板中访问 $state

javascript - 向下滚动页面加载的最佳方式

php - 进行 AJAX 调用以更新数据库 onChange of a textarea

php - 在 PHP 中使用 Post 进行 Ajax 调用

mongodb - junit中的模拟休息服务(带 Spring )

java - 使用 Jersey 客户端,Java 8 Date API (Jsr310) 的问题

rest - 使用具有基本身份验证的 Fiddler 访问 RESTful WebAPI