-1

因此,我花了一些时间为自己正在做的一个项目构建了一个快速 API。

我使用 Chrome 的 Postman 插件来模拟 PUT 和 DELETE 任务,以确保一切正常。真的很高兴我这样做了,因为我学到了很多关于 PHP 在 PUT 和 DELETE 请求方面的缺点。

使用我与 Postman 合作的 API,我开始将所有内容转移到 AngularJs 控制器等。

我试图让用户在数据库中声明一行,因为用户的登录信息与此特定信息不同。我无法弄清楚为什么在我的数据库中声明该行的 put 请求不起作用。瞧,从我解析的数据parsestr(file_get_contents('php://input'))有 1 个数组键,它是一个 JSON 字符串。

我看过了,我似乎无法通过 Stackoverflow 或 Google 找到可靠的答案(也许我在配置选项中的某个地方错过了它),所以我的问题是:有什么方法可以让我$http.put打电话发送数据正确到服务器?

4

1 回答 1

0

感谢用户 Chandermani 将我指向此 URL上的链接,该链接回答了我的问题的基础。

从上面的链接,我发现自己在另一个用户提交的这个博客帖子上。最后,我最终做的是以下内容:

从上面的链接中获取param()功能,以及实现这些代码行:

var app = angular.module('ucpData', [] , function($httpProvider){
        $httpProvider.defaults.transformRequest = [function(data) {
            return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
          }];
    });

我是如何解决这个问题的。对于某些开发人员,您实际上可能希望保留默认的 transformRequest 设置,但对于我正在做的项目,我知道我最终会忘记调用param(),而且我的服务器无论如何也不自然地接受 json 数据。我会提醒未来的开发人员在直接更改 transformRequest 数组之前考虑他们正在尝试做什么。

于 2014-08-25T08:27:31.713 回答