Header 在 $resource 上设置未返回正确的 odata 响应

Header set on $resource not returning proper odata response

我正在尝试 return odata 为 "nometadata",如下所示:JSON Light for SharePoint

我在我的工厂里设置了我的 headers 如下:

appServices.factory('appItems', ['$resource', function ($resource) {
    return $resource("/_api/web/lists/getbytitle('Todo Task List')/Items", {},
    {
        'query': { method: "GET", isArray: false },
        'update': { method: 'PATCH' },
        'headers': { Accept: 'application/json;odata=nometadata'}
    }
    );
}]);

但是,它没有 return nometadata 选项,而是默认为:

Key     Value
Accept  application/json, text/plain, */*

如何让它传入 nometadata 选项?

根据 $resource 的文档,headers object 应该放在一个动作中:

appServices.factory('appItems', ['$resource', function ($resource) {
 return $resource("/_api/web/lists/getbytitle('Todo Task List')/Items", {},
    {
     'query': { method: "GET", isArray: false, headers: { 'Accept': 'application/json;odata=nometadata'} },
     'update': { method: 'PATCH', headers: { 'Accept': 'application/json;odata=nometadata'} },
    }
  );
}]);

按照您的代码,headers 将成为您的资源的新操作,被称为:appItems.headers() 这不会 produce/do 您所期望的。

老实说,关于 headers: 应该是什么类型或如何为所有 $resource 操作全局设置 header,文档并不完全清楚,因此您可以如果 adding/overriding 操作变得乏味,请围绕 $http 编写自己的包装器。

This 答案显示另一个例子