Angular $ http.post不发送标头

时间:2015-07-15 21:14:26

标签: angularjs

我创建了一个基本的角度$ http.post请求来接收一些数据。为了接收数据,我需要在标题中提供密钥。

即使我已明确发送密钥,服务器也会响应密钥丢失。

100%它不是服务器,因为我使用了提供所需响应的在线卷曲工具。

$http.post(url, {        
    data:{username: username,password: password},
    headers:{'Content-Type': 'application/x-www-form-urlencoded','key': key},
  })
  .then(function(response){
    console.log(response)
  })

如果有人能够发现我在这里做错了什么,我们将不胜感激。感谢。

3 个答案:

答案 0 :(得分:-1)

在标题键后面有一个尾随逗号,也许这会让事情失效?

$http.post(url, {        
  data:{username: username,password: password},
  headers:{'Content-Type': 'application/x-www-form-urlencoded','key': key}, // Remove this comma
})
.then(function(response){
  console.log(response)
});

答案 1 :(得分:-1)

之前我遇到过类似的问题,并通过在app config阶段向httpProvider添加transformRequest来解决它。感谢在此提供代码的kzar:

https://stackoverflow.com/a/19633847/2347498

答案 2 :(得分:-1)

根据docs应该是:

快捷方式

  $http.post('http://localhost:9191/api/signin', {
    username: 'some username',
    password: 'some password'
  }, {
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'key': '123'
    }
  })
  .then(function(response) {
    console.log(response)
  });

长版

$http({
  method: 'POST',
  url: 'http://localhost:9191/api/signin',
  data: {
    username: 'some username',
    password: 'some password'
  },
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'key': '123'
  }
}).then(function(response) {
  console.log(response)
});

经过测试并且工作正常。