关于angular $http 中的data传递参数(json字符串)后端没法接收的问题


使用的angular版本1.6.4,后台采用springMVC。
项目要实行前后台分离,前后台交互都采用json,刚开始有些抗拒。
不否认,angular确实好用,不用再花很多心思在繁琐的dom上了。
不过小白我刚刚接触,废了半天劲,传个值都没搞定,心累。
且不论POST对应data,GET对应params的低级错误。
虽然后来知道是angular的$http传值Content-Type默认是'application/json',可没想到
headers: {'Content-Type': 'application/x-www-form-urlencoded'}必须置于最后。
//如果你想避免由于ng-repeat使得传入的json会存在有$hashkey的问题,请使用angular.toJson对其序列化,而不是使用JSON.stringify
var data = JSON.stringify($scope.products);
$http({
    method: "POST",
    url: url,
    data: $.param({data:data}),
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(function (data) {
}).error(function () {
});
/*<-----------------------分割线--------------------------->*/
$http的get请求:
$http({
    method: "GET",
    url: "url",
    params: {"param1": "param1",....},
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(function successCallback(response){

},function errorCallback(response){
    // 请求失败执行代码
});
补充:
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,这个一般文件上传时用。
text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。 
参考链接:http://stackoverflow.com/questions/11442632/how-can-i-post-data-as-form-data-instead-of-a-request-payload
http://blog.csdn.net/qq_28702545/article/details/51719199
https://www.cnblogs.com/chris-oil/p/6518633.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM