我正在尝试编写一个 AngularJS 资源模块,它将一些数据发布到服务器。默认内容类型似乎是“application/xml”。我正在尝试将内容类型覆盖为“application/x-www-form-urlencoded”。当做一个正常的 $http.post() 我可以设置内容类型,当我签入 Firebug 时,我可以看到它设置正确。当我使用资源的 POST 方法时,我无法更改默认的内容类型。我认为我是按照文档描述的方式来做的。
var myApp = angular.module('myApp',['myResource']);
angular.module('myResource', ['ngResource']).factory('myResource', function($resource){
return $resource('/echo/json',{},{
add:{ method:'POST', params:{ foo:'1' }, headers:{'Content-Type':'application/x-www-form-urlencoded'} }
});
});
function MyCtrl($scope,$http,myResource) {
$scope.click = function() {
//This will make an ajax call with a content-type of application/xml
myResource.add();
//this will make an ajax call with a content-type of application/x-www-form-urlencoded
$http.post('/echo/json','foo=1',{'headers':{'Content-Type':'application/x-www-form-urlencoded'}});
}
}
任何关于如何让 AngularJS 资源以不同的内容类型发布的想法或示例将不胜感激。