method1方法使用的是params參數,該用法會把參數直接附加到url中
method2方法使用的是data參數,該參數會把頁面參數類型從默認的multipart/form-data改為application/x-www-form-urlencoded類型,並且將傳遞的data解析為字符串,該方法會以post參數的方式傳遞
下面是代碼部分:
<html ng-app="myApp"> <head> <title>angularjs-ajax</title> <script type="text/javascript" src="../../lib/ionic/js/angular/angular.min.js" charset="utf-8"></script> </head> <body ng-controller="ctrl"> <input type="button" value="抓取頁面內容1" ng-click="method1()" /> <input type="button" value="抓取頁面內容2" ng-click="method2()" /> <div style="border: 1px solid #ccc;width: 500px;height:400px;">{{content}}</div> <script> var app = angular.module('myApp',[]); app.config(function($provide){ $provide.factory("transFormFactory",function(){ return { transForm : function(obj){ var str = []; for(var p in obj){ str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); } return str.join("&"); } }; }); }); app.controller("ctrl",function($scope,$http,$q,transFormFactory){ $scope.method1 = function() { $scope.url = "http://localhost:8081/Learning5/T1.action"; $http({method:"POST",url:$scope.url,params:{msg:'abc'}}).success(function (data) { $scope.content = data; }); }; $scope.method2 = function() { $scope.url = "http://localhost:8081/Learning5/T1.action"; $http({method:"POST",url:$scope.url,data:{msg:'123'},transformRequest:transFormFactory.transForm,headers:{'Content-Type': 'application/x-www-form-urlencoded'}}).success(function (data) { $scope.content = data; }); }; }); </script> </body> </html>