欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

angular中的post請求處理示例詳解

 更新時間:2020年06月30日 08:34:32   作者:bluesky  
這篇文章主要給大家介紹了關(guān)于angular中post請求處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用angular具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

項(xiàng)目angular中使用jQuery請求,想替換為angular自身請求,結(jié)果發(fā)現(xiàn)后臺沒法獲取參數(shù),所以,查詢資料分析一下,做個總結(jié)。

步驟如下:

首先,angular和jQuery中請求是不同的。如下:

  • jQuery:

請求contentType是:

application/x-www-form-urlencoded; charset=UTF-8

該類型數(shù)據(jù)被編碼成以 '&' 分隔的鍵-值對, 同時以 '=' 分隔鍵和值. 非字母或數(shù)字的字符會被百分比編碼: 這也就是為什么這種類型不支持二進(jìn)制數(shù)據(jù)(應(yīng)使用 multipart/form-data 代替)。

data參數(shù)是處理過的:

// json對象
{ a : 3, b : 2 }
// 將json對象處理為
"a=3&b=2"
  • Angular:

請求contentType:

application/json

data參數(shù):

// json對象
{a: 3,c: 2}

綜上來看,angular提交后臺是json,不是表單數(shù)據(jù)。我們需要把json對象轉(zhuǎn)換為參數(shù)拼接,提交后臺時就是表單數(shù)據(jù)了:

/**
  * 將application/json轉(zhuǎn)換為application/x-www-form-urlencoded
  * @param data
  */
 handlerPostParams(data) {
  const params = [];
  for (const key in data) {
   if (data[key] && !isNull(data[key])) {
    if (data[key] instanceof Array) {
     for (let i = 0; i < data[key].length; i++) {
      if (data[key][i] && !isNull(data[key][i])) {
       const value = data[key][i];
       const name = key + '[' + i + ']';
       const innerObj = {};
       innerObj[name] = value;
       params.push(this.handlerPostParams(innerObj));
      }
     }
    } else if (data[key] instanceof Object) {
     for (const k in data[key]) {
      if (data[key][k] && !isNull(data[key][k])) {
       const value = data[key][k];
       const name = key + '[' + k + ']';
       const innerObj = {};
       innerObj[name] = value;
       params.push(this.handlerPostParams(innerObj));
      }
     }
    } else {
     const param = encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
     params.push(param);
    }
   }
  }
  return params.join('&');
 }

總結(jié)

到此這篇關(guān)于angular中post請求處理的文章就介紹到這了,更多相關(guān)angular post請求處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • angularjs+bootstrap菜單的使用示例代碼

    angularjs+bootstrap菜單的使用示例代碼

    本篇文章主要介紹了angularjs+bootstrap菜單的使用示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • AngularJS 霸道的過濾器小結(jié)

    AngularJS 霸道的過濾器小結(jié)

    本篇文章主要介紹了AngularJS 霸道的過濾器小結(jié),在實(shí)際操作中,我們需要對統(tǒng)一數(shù)據(jù)源進(jìn)行多次轉(zhuǎn)換,本文詳細(xì)討論有關(guān)過濾器的用法 。
    2017-04-04
  • AngularJS 中的事件詳解

    AngularJS 中的事件詳解

    本文主要介紹AngularJS 事件,這里整理了相關(guān)資料,比較詳細(xì)的介紹了AngularJS的使用方法,有需要的小伙伴參考下
    2016-07-07
  • Angular4綁定html內(nèi)容出現(xiàn)警告的處理方法

    Angular4綁定html內(nèi)容出現(xiàn)警告的處理方法

    這篇文章主要給大家介紹了關(guān)于Angular4綁定html內(nèi)容出現(xiàn)警告的處理方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 深入理解Angular中的依賴注入

    深入理解Angular中的依賴注入

    本篇文章主要介紹了深入理解Angular中的依賴注入,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Angular.js中定時器循環(huán)的3種方法總結(jié)

    Angular.js中定時器循環(huán)的3種方法總結(jié)

    這篇文章主要給大家總結(jié)了angular.js中定時器循環(huán)的3種方法,分別是利用$interlval實(shí)現(xiàn)、$timeout的遞歸調(diào)用來實(shí)現(xiàn)以及$timeout借助arguments.callee來實(shí)現(xiàn),每種方法都給出了詳細(xì)的示例艾瑪供大家學(xué)習(xí)參考,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-04-04
  • AngularJs分頁插件使用詳解

    AngularJs分頁插件使用詳解

    這篇文章主要為大家詳細(xì)介紹了AngularJs分頁插件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • AngularJs 利用百度地圖API 定位當(dāng)前位置 獲取地址信息

    AngularJs 利用百度地圖API 定位當(dāng)前位置 獲取地址信息

    本文主要介紹了AngularJs 利用百度地圖API 定位當(dāng)前位置 獲取地址信息的方法步驟。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • AngularJS入門教程之AngularJS指令

    AngularJS入門教程之AngularJS指令

    AngularJS指令用于擴(kuò)展HTML。本文給大家介紹AngularJS入門教程之AngularJS指令,感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • 深入理解Angular4中的依賴注入

    深入理解Angular4中的依賴注入

    在Angular中使用依賴注入,可以幫助我們實(shí)現(xiàn)松耦合,可以說只有在組件中使用依賴注入才能真正的實(shí)現(xiàn)可重用的組件。
    2017-06-06

最新評論