Angular, content type is not being sent with $http

angularjs

Solution

You need to include a body with the request. Angular removes the content-type header otherwise.

Add `data: ''` to the argument to `$http`.

Problem

Angular is not adding the correct content type option, I tried the following command: ``` $http({ url: "http://localhost:8080/example/teste", dataType: "json", method: "POST", headers: { "Content-Type": "application/json" } }).success(function(response){ $scope.response = response; }).error(function(error){ $scope.error = error; }); ``` The code above generates the following http request: ``` POST http://localhost:8080/example/teste HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 0 Cache-Control: no-cache Pragma: no-cache Origin: http://localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 Content-Type: application/xml Accept: application/json, text/plain, */* X-Requested-With: XMLHttpRequest Referer: http://localhost:8080/example/index Accept-Encoding: gzip,deflate,sdch Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: JSESSIONID=C404CE2DA653136971DD1A3C3EB3725B ``` As you can see, instead of "application/json", the content type is "application/xml". Am I missing something here ?

Original source

Related problems