1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Angularjs中$http以post请求通过消息体传递参数

Angularjs中$http以post请求通过消息体传递参数

时间:2023-01-05 15:38:12

相关推荐

Angularjs中$http以post请求通过消息体传递参数

Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确保消息体传递参数的正确性。

一、在声明应用的时候进行设置:

1 var httpPost = function ($httpProvider) {2/*******************************************3说明:$http的post提交时,纠正消息体4 参考://12/20/make-angularjs-http-service-behave-like-jquery-ajax/5********************************************/6// Use x-www-form-urlencoded Content-Type7$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';8/*9* The workhorse; converts an object to x-www-form-urlencoded serialization.10* @param {Object} obj11* @return {String}12*/13var param = function (obj) {14 var query = '', name, value, fullSubName, subName, subValue, innerObj, i;15 16 for (name in obj) {17 value = obj[name];18 19 if (value instanceof Array) {20 for (i = 0; i < value.length; ++i) {21 subValue = value[i];22 fullSubName = name + '[' + i + ']';23 innerObj = {};24 innerObj[fullSubName] = subValue;25 query += param(innerObj) + '&';26 }27 } else if (value instanceof Object) {28 for (subName in value) {29 subValue = value[subName];30 fullSubName = name + '[' + subName + ']';31 innerObj = {};32 innerObj[fullSubName] = subValue;33 query += param(innerObj) + '&';34 }35 } else if (value !== undefined && value !== null)36 query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';37 }38 39 return query.length ? query.substr(0, query.length - 1) : query;40};41 42// Override $http service's default transformRequest43$httpProvider.defaults.transformRequest = [44 function (data) {45 return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;46 }47];48 };49 50 var ngApp = angular.module('wtApp', ['ngCookies'], httpPost);

二、调用$http post

1 $http({2method: 'POST',3url: 'GetData.ashx',4params: { id: '1002' },//params作为url的参数5data: { keyName: 'qubernet' }//作为消息体参数6 }, function (data) {7 8 });

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。