内容types不是用$ http发送的
Angular没有添加正确的内容types选项,我尝试了下面的命令:
$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; });
上面的代码生成以下http请求:
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
正如你所看到的,而不是“application / json”,内容types是“application / xml”。 我在这里错过了什么?
你需要包含一个正文与请求。 否则,Angular将删除内容types标题。
将data: ''
添加到$http
的参数中。
$http({ url: 'http://localhost:8080/example/teste', dataType: 'json', method: 'POST', data: '', headers: { "Content-Type": "application/json" } }).success(function(response){ $scope.response = response; }).error(function(error){ $scope.error = error; });
像这样尝试。
$http({ method: 'GET', url:'/http://localhost:8080/example/test' + toto, data: '', headers: { 'Content-Type': 'application/json' } }).then( function(response) { return response.data; }, function(errResponse) { console.error('Error !!'); return $q.reject(errResponse); }
大! 上面给出的解决scheme为我工作。 与GET
调用有相同的问题。
method: 'GET', data: '', headers: { "Content-Type": "application/json" }