麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

解決angular的$http.post()提交數據時后臺接收不到參數值問題的方法

2024-05-06 16:25:59
字體:
來源:轉載
供稿:網友
這篇文章為大家分享了解決angular的$http.post()提交數據時后臺接收不到參數值問題的方法,感興趣的小伙伴們可以參考一下
 

寫此文的背景:在學習使用angular的$http.post()提交數據時,后臺接收不到參數值,于是查閱了相關資料,尋找解決辦法。

寫此文的目的:通過上面提到的文章中的解決之道,結合自己的經驗,總結了如下發現。
前端:html,jquery,angular
后端:java,springmvc
一、平常使用的post提交和接收方式
前端使用jquery提交數據。

$.ajax({  url:'/carlt/loginForm',  method: 'POST',    data:{"name":"jquery","password":"pwd"},  dataType:'json',  success:function(data){    //...  }});

后端java接收:

@Controllerpublic class UserController {  @ResponseBody  @RequestMapping(value="/loginForm",method=RequestMethod.POST)  public User loginPost(User user){    System.out.println("username:"+user.getName());    System.out.println("password:"+user.getPassword());    return user;  }}model(不要忘記get、set方法):public class User {  private String name;  private String password;  private int age;    //setter getter method}

后臺打?。?/p>

username:jquery
password:pwd

調用接口查看到的前端返回結果:

解決angular的$http.post()提交數據時后臺接收不到參數值問題的方法

二、使用angularJs的post方法提交

<div ng-app="myApp" ng-controller="formCtrl"> <form novalidate> UserName:<br> <input type="text" ng-model="user.username"><br> PassWord:<br> <input type="text" ng-model="user.pwd"> <br><br> <button ng-click="login()">登錄</button> </form></div>

js代碼:

var app = angular.module('myApp', []);app.controller('formCtrl', function($scope,$http) { $scope.login = function() {  $http({   url:'/carlt/loginForm',   method: 'POST',      data: {name:'angular',password:'333',age:1}    }).success(function(){   console.log("success!");  }).error(function(){   console.log("error");  }) };});

后臺打印結果:

username:null
password:null:

查看前端:

解決angular的$http.post()提交數據時后臺接收不到參數值問題的方法

三、解決angular提交post問題。
相信看過上面提到的哪怕文章的人已經知道怎么解決問題了吧。文中是更改了angular的提交方式,使得angular的提交數據方式更像jquery的。

我試過,也是行得通的。然后我又試了另外一種方式。如下:

前端不變,依然是:

var app = angular.module('myApp', []);app.controller('formCtrl', function($scope,$http) {  $scope.login = function() {    $http({      url:'/carlt/loginForm',      method: 'POST',            data: {name:'angular',password:'333',age:1}       }).success(function(){      console.log("success!");    }).error(function(){      console.log("error");    })  };});

后臺變了,只是在User前加上@RequstBody,因為angular提交的是json對象:

@Controllerpublic class UserController {  @ResponseBody  @RequestMapping(value="/loginForm",method=RequestMethod.POST)  public User loginPost(@RequestBody User user){    System.out.println("username:"+user.getName());    System.out.println("password:"+user.getPassword());    return user;  }}@RequestBody

作用:

      i) 該注解用于讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,然后把相應的數據綁定到要返回的對象上;

      ii) 再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上。

使用時機:

A) GET、POST方式提時, 根據request header Content-Type的值來判斷:

    application/x-www-form-urlencoded, 可選(即非必須,因為這種情況的數據@RequestParam, @ModelAttribute也可以處理,當然@RequestBody也能處理);
    multipart/form-data, 不能處理(即使用@RequestBody不能處理這種格式的數據);
    其他格式, 必須(其他格式包括application/json, application/xml等。這些格式的數據,必須使用@RequestBody來處理);
B) PUT方式提交時,根據request header Content-Type的值來判斷:

    application/x-www-form-urlencoded, 必須;
    multipart/form-data, 不能處理;
    其他格式,必須;
說明:request的body部分的數據編碼格式由header部分的Content-Type指定;

四、解決了angular問題之后,發現jquery按照原來的方式提交post請求會報錯(錯誤碼415)。

如下方式可以解決jquery提交問題:

$.ajax({  url:'/carlt/loginForm',  method: 'POST',  contentType:'application/json;charset=UTF-8',  data:JSON.stringify({"name":"jquery","password":"pwd"}),  dataType:'json',  success:function(data){    //...  }});

json對象轉json字符串:JSON.stringify(jsonObj);

以上就是本文的全部內容,有興趣的同學可以試試其它方法,希望本文可以解決大家遇到的angular的post提交問題。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 91中文字幕在线观看 | 亚洲欧美日韩精品久久 | 精品国产一区二区久久 | 色妞视频男女视频 | 在线播放中文 | 亚洲第一页在线观看 | 国产免费一区二区三区网站免费 | 毛片成人网 | 久久99亚洲精品久久99果 | 91看片免费版 | 毛片大全免费看 | 国产在线一级视频 | 女人叉开腿让男人桶 | 久久999精品久久久 国产噜噜噜噜久久久久久久久 | 黄色美女免费 | 亚洲情视频 | 香蕉久久久久久 | 日本中文字幕久久 | 91精品国产乱码久久久久久久久 | 日本免费aaa观看 | av色在线观看 | 91一区二区在线观看 | 久久久一区二区 | 欧美性受ⅹ╳╳╳黑人a性爽 | 国产99视频在线观看 | 成人18免费观看 | free国产hd老熟bbw | 啪啪激情 | 中国毛片在线观看 | 欧美黄色试片 | 国产精品91久久久 | 国产精品一区二区羞羞答答 | 久久国产亚洲视频 | 亚洲日色| 欧美一级全黄 | 久久亚洲第一 | 夏目友人帐第七季第一集 | 亚洲网站一区 | 曰批全过程120分钟免费69 | 亚洲精品午夜国产va久久成人 | 一区二区三区日韩精品 |