中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Angularjs中$http.post與$.post的示例分析

發布時間:2021-09-01 14:31:08 來源:億速云 閱讀:179 作者:小新 欄目:web開發

這篇文章給大家分享的是有關Angularjs中$http.post與$.post的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一個例子

這里模擬登錄的一個場景,post用戶名與密碼,服務端接受賬戶并直接返回到客戶端不做其它業務處理。

使用angularjs版本

/*
 AngularJS v1.2.15
 (c) 2010-2014 Google, Inc. http://angularjs.org
 License: MIT
*/

服務端

  public class AccountController : Controller
  {

    // GET: /<controller>/
    public IActionResult Login()
    {
      return View();
    }
    [HttpPost]    
    public IActionResult Login(string userName,string userPwd)
    {
      var resut = Request.Form;
      return Json(new { _code = 200, _msg = "Login success", name = userName, password = userPwd });
    }
  }

$.post

首先使用$.post的方式,直接提交賬戶密碼

  $.post("@Url.Content("~/Account/Login")",{ userName: "2342342", userPwd:"2sssdfs" },function (data) {
      console.log(data);
    });

響應

Angularjs中$http.post與$.post的示例分析

這里我們看一下請求體

Angularjs中$http.post與$.post的示例分析

那么我們現在看看angularjs的$http.post的情況,到底區別在哪兒?

@{
  Layout = null;
}
<!DOCTYPE html>
<html ng-app="login">
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>IT怪O 用戶登錄</title>
  <link href="~/lib/bootstrap/dist/css/bootstrap.css" rel="external nofollow" rel="stylesheet" />
  <script src="~/js/angular.min.js"></script>
  <script>
    angular.module("login", []).controller("LoginController", function ($http, $scope) {
      $scope.Login = function () {
        var data = { userName: $scope.userName, userPwd: $scope.userPwd };

        var config = {
          headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
          //transformRequest: function (obj) {
          //  var str = [];
          //  for (var p in obj) {
          //    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
          //  }
          //  return str.join("&");
          //}
        };
        console.log(data);
        $http.post("@Url.Content("~/Account/Login")", data, config).success(function (data) {
          console.log(data);
        });
      };

    });
  </script>
</head>
<body>
  <div ng-controller="LoginController">
    <input type="text" placeholder="用戶名" ng-model="userName" value="" />
    <input type="password" placeholder="密碼" ng-model="userPwd" value="" />
    <button ng-click="Login()">登錄</button>
  </div>
</body>
</html>

登錄

Angularjs中$http.post與$.post的示例分析

出現了,處于習慣的原因,平時就會這樣來寫$http.post的。但結果并不是想要的。那么咱們與$.post對比一下請求體。

Angularjs中$http.post與$.post的示例分析

看到沒?差別就在這里。

發現問題了,那么我們就要轉化為$.post提交參數的方式。幸好,angularjs中$http.post提供了一個轉化參數的transformRequest方法,可以在config中加上該參數:

  var config = {
          headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
          transformRequest: function (obj) {
            var str = [];
            for (var p in obj) {
              str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
            }
            return str.join("&");
          }
        };

 它的作用就是將提交的參數轉化為$.post提交參數的方式。這樣看到的請求體中參數就與$.post相同了。

可以在全局進行設置

  <script>
    angular.module("login", []).controller("LoginController", function ($http, $scope) {
      $scope.Login = function () {
        var data = { userName: $scope.userName, userPwd: $scope.userPwd };
        console.log(data);
        $http.post("@Url.Content("~/Account/Login")", data).success(function (data) {
          console.log(data);
        });
      };

    }).config(function ($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; charset=utf-8';
    });
  </script>

angularjs在進行post請求的時候要進行參數配置。關于angularjs的post請求,建議在初始化模塊的時候對post請求設置請求頭與請求參數轉換的設置,這樣可以在其他地方方便使用。

感謝各位的閱讀!關于“Angularjs中$http.post與$.post的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江安县| 宁蒗| 石泉县| 大姚县| 马山县| 九江市| 佛教| 昭觉县| 新安县| 汉沽区| 宣恩县| 东乡族自治县| 巩留县| 抚顺市| 突泉县| 天峨县| 牟定县| 林芝县| 涞源县| 邳州市| 濉溪县| 缙云县| 固阳县| 象山县| 隆化县| 肃南| 彰化市| 榆林市| 河源市| 木兰县| 昌都县| 内乡县| 巩留县| 阳谷县| 伊宁市| 新昌县| 册亨县| 青海省| 方山县| 永川市| 黄陵县|