软测homework1

 

 

cnblog: http://www.cnblogs.com/taehyungv97/

Github: https://github.com/kthlj

 

angular框架应用学习过程中出现的问题

错误:在angular使用过程中出现$http.post()参数类型不正确的错误。

当时正在学习基于angularweb开发,要求实现一个较为初级的网上商城管理系统。在通过$http.post()方法传递数据时,所带参数是json对象,而不是表单数据,导致参数可以被jQuery$.post()方法获取,但却无法通过服务器使用一般方法得到正确的参数对象。

 

错误原因:对于header的处理,jQuery会将json对象——myData序列化,但angular并不会做这样的处理。即对于var myData{m:?,n:?}来说,jQuery会在post数据之前将myData转换为字符串。

 

发现:通过对https://angular.cn/tutorial中范例项目的学习,对比代码的不同,找到可能出错的地方并按照官网项目的方法进行修改,最终解决了问题。

 

问题解决:对$httpProvider的默认处理进行修改

$httpProvider.defaults.transformRequest=function(obj){

var str=[];

for (var p in obj){

Str.push(encodeURIComponent(p)+’=’+encodeURIComponent(obj[p]));

}

return str.join(“&”);

};

$httpProvider.defaults.headers.post={

‘Content-Type’:’application/x-www-form-urlencoded’

};

posted @ 2018-03-11 20:21  V_SWAN  阅读(66)  评论(0编辑  收藏  举报