一般從jQuery的ajax轉用angular的$http服務的時候,會遇到後臺獲取不到值的狀況,這是由於jquery
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服務啦ajax