我在Angular上使用资源尝试了以下命令:
angular.module('appServices', ['ngResource']).factory('Example', function($resource){ return $resource('http://api.example.com.br/teste', {}, { query: {method:'GET', headers: {'Content-Type': 'application/json'}} }); });
但是无法正确生成http内容类型,在这种情况下为“ application / json”。
我已经看到类似的问题,例如AngularJS资源未设置Content-Type,但是我拥有最新的Angular版本(1.0.6 / 1.1.4)。
上面的代码有什么问题?
结论
查看1.1.4版中的角度源,第8742行:
// strip content-type if data is undefined if (isUndefined(config.data)) { delete reqHeaders['Content-Type']; }
所述Content-Type,如果请求不包含任何数据(请求主体)报头被除去。
Content-Type
我认为这是预期的行为,因为 GET 请求没有主体。
GET
另一方面,只要POST方法在请求正文中有数据,它就会按照您的期望设置内容类型。尝试以下方法:
将方法更改为 POST
POST
query: {method:'POST', headers: {'Content-Type': 'application/json'}}
并使用一些参数调用您的资源操作:
Example.query(yourData)
在这种情况下,内容类型设置正确。
编辑 :
似乎它也可以与get一起使用,在这种情况下,数据位于第二个参数中:
Example.query(yourParams, yourData)
范例:http://jsfiddle.net/WkFHH/