2012-10-08 8 views
6

Estoy tratando de escribir un módulo de recursos AngularJS que publicará algunos datos en el servidor. El tipo de contenido predeterminado parece ser "application/xml". Estoy intentando sobrescribir el tipo de contenido a "application/x-www-form-urlencoded". Al hacer un $ http.post normal() puedo establecer el tipo de contenido y cuando reviso Firebug, puedo verlo configurado correctamente. Cuando uso el método POST del recurso, no puedo cambiar el tipo de contenido del predeterminado. Creo que lo estoy haciendo de acuerdo con la descripción de documentation.El recurso AngularJS no configura Content-Type

http://jsfiddle.net/vBsUH/3/

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'}}); 

    } 
}​ 

Cualquier idea o ejemplos sobre cómo conseguir un recurso AngularJS al poste con un diferente tipo de contenido sería muy apreciada.

Respuesta

1

Jake, ayer proporcionan algo de información a una pregunta similar: https://stackoverflow.com/a/12876784/1367284

pegar que por debajo de la respuesta:

Si bien los documentos de desarrollo (al 12 de octubre) muestran que anulando las cabeceras es posible en un recurso $ , aún no ha sido lanzado (v1.0.2 o v1.1.0). Sin embargo, la característica está en las ramas v1.0.x y master. Para poder acceder a esa característica, puede considerar construir desde la rama v1.0.x por el momento.

Cómo construir: http://docs.angularjs.org/#H1_4

Como alternativa, puede tirar de la acumulación de instantáneas: http://code.angularjs.org/snapshot/

Parece que esta función será en la próxima versión.

Cuestiones relacionadas