Angularjs中$http以post请求通过消息体传递参数的实现方法
本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法。分享给大家供大家参考,具体如下:
Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确保消息体传递参数的正确性。
一、在声明应用的时候进行设置:
varhttpPost=function($httpProvider){
/*******************************************
说明:$http的post提交时,纠正消息体
********************************************/
//Usex-www-form-urlencodedContent-Type
$httpProvider.defaults.headers.post['Content-Type']='application/x-www-form-urlencoded;charset=utf-8';
/*
*Theworkhorse;convertsanobjecttox-www-form-urlencodedserialization.
*@param{Object}obj
*@return{String}
*/
varparam=function(obj){
varquery='',name,value,fullSubName,subName,subValue,innerObj,i;
for(nameinobj){
value=obj[name];
if(valueinstanceofArray){
for(i=0;i<value.length;++i){
subValue=value[i];
fullSubName=name+'['+i+']';
innerObj={};
innerObj[fullSubName]=subValue;
query+=param(innerObj)+'&';
}
}elseif(valueinstanceofObject){
for(subNameinvalue){
subValue=value[subName];
fullSubName=name+'['+subName+']';
innerObj={};
innerObj[fullSubName]=subValue;
query+=param(innerObj)+'&';
}
}elseif(value!==undefined&&value!==null)
query+=encodeURIComponent(name)+'='+encodeURIComponent(value)+'&';
}
returnquery.length?query.substr(0,query.length-1):query;
};
//Override$httpservice'sdefaulttransformRequest
$httpProvider.defaults.transformRequest=[
function(data){
returnangular.isObject(data)&&String(data)!=='[objectFile]'?param(data):data;
}
];
};
varngApp=angular.module('wtApp',['ngCookies'],httpPost);
二、调用$httppost
$http({
method:'POST',
url:'GetData.ashx',
params:{id:'1002'},//params作为url的参数
data:{keyName:'qubernet'}//作为消息体参数
},function(data){
});
希望本文所述对大家AngularJS程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短