通常从jQuery的ajax转用angular的$http服务的时候,会遇到后台获取不到值的情况,这是因为

post请求的请求体的两种格式

  • 1.字符串: ‘name=name&password=password’
    这种格式的请求体,需要配置请求头 ‘Content-Type’:’application/x-www-form-urlencoded’
  • 2.json: {name:’name’,password:’password’}
    这种格式的请求体,需要配置请求头 ‘Content-Type’:’application/json;charset=UTF-8’

ajax和$http区别

  • 在jquery中,官方文档解释contentType默认是 application/x-www-form-urlencoded; charset=UTF-8,即第一种
  • 在angular的$http中,默认是第二种,所以使用$http(config)提交请求体,config中的data项必须是json格式的值。

解决办法

  此时我们可以配置$http(config)中的headers中的Content-Type值为’application/x-www-form-urlencoded’,然后就能按照ajax的用法尽情使用$http服务啦

posted on 2017-12-20 15:29  再见亦是泪  阅读(639)  评论(0编辑  收藏  举报