• Ajax请求($.ajax()为例)中data属性传参数的形式


    首先定义一个form表单:

     <form id="login" >
            <input name="user" type="text"/>
            <input name="sex" type="radio" value="man"/>
            <input name="sex" type="radio" value="woman"/>
            <input type="checkbox" name="interest" value="piu">PIU
            <input type="checkbox" name="interest" value="dss">DSS
            <input type="checkbox" name="interest" value="ddr">DDR<br>  
            <input type="button" name="submit" value="submit" οnclick="getFormInfo();"> 
     </form>
    
        <script type="text/javascript" src="./../js/jquery.min.js"></script>
    

      实现Ajax提交数据进行请求,其中data属性设置传参的方法有好几种形式,如下:

    //第一种写法(把参数拼接在URL中,data属性设为空{ })
        function getFormInfo(){
            var name='wen';
            var user='chen';
            $.ajax({
             url: "/login/authenticate?name="+name+"&user="+user,
             type: "POST",
             data:{},
             dataType: "json",
             success: function(data){
    
              },
              error:function(err){
                console.log(err.statusText);
                console.log('异常');
              }
            });
        }
    

      

    //第二种写法(参数写成json数据形式)
        function getFormInfo(){
            $.ajax({
             url: "http://192.168.10.32:6833/login/authenticate",
             type: "POST",
             data:{
                name:'chem',
                user:'wen'
             },
             cache:false,
             dataType: "json",
             success: function(data){
    
              },
              error:function(err){
              }
            });
        }
    

      第三种写法(根据表单id属性,把表单封装数据,调用JQuery的serialize()方法序列化为字符串)
     前提是:发送请求的必须是一个form表单,而且表单内要做参数的标签必须具有name属性,因为name属性会被认为请求参数名

    //代码如下
        function getFormInfo(){
            var params=$('#login').serialize(); //把id为login的form表单里的参数自动封装为参数传递
            console.log(params);
            $.ajax({
             url: "http://192.168.10.32:6833/login/authenticate",
             type: "POST",
             data:params,
             cache:false,
             dataType: "json",
             success: function(data){
                 
              },
              error:function(err){
    
              }
            });
        }
    

      

    //第四种写法(拼接data)
        function getFormInfo(){
            var name='chen';
            var user='wen';
            $.ajax({
             url: "http://192.168.10.32:6833/login/authenticate",
             type: "POST",
             data:'name='+name+'&user='+user,
             cache:false,
             dataType: "json",
             success: function(data){
                 
              },
              error:function(err){
    
              }
            });
        }
    

     

       //前四种的controller
        @RequestMapping(value = "authenticate",method = RequestMethod.POST)
        public String update(Book book){
            System.out.println(book);
            return "success";
        }

     --------------------------------------------------分割线----------------------------------------------还有几种形式:
     需要引入:<script type="text/javascript" src="serializeJSON.js"></script>

    //第五种写法(表单序列化为json数据)
        function getFormInfo(){
            var params=$('#login').serializeJSON();
            console.log(params);
            $.ajax({
             url: "http://192.168.10.32:6833/login/authenticate",
             type: "POST",
             data:params,
             cache:false,
             dataType: "json",
             success: function(data){
                 
              },
              error:function(err){
    
              }
            });
        }
    

      

    //第六种写法(既有全部直接获取表单中的数据又有单独出来的数据)
        function getFormInfo(){
            var params=$('#login').serializeJSON();
            console.log(params);
            params.height='20';
            $.ajax({
             url: "http://192.168.10.32:6833/login/authenticate",
             type: "POST",
             data:params,
             cache:false,
             dataType: "json",
             success: function(data){
                 
              },
              error:function(err){
    
              }
            });
        }
    

    表单序列化插件serializeJSON.js下载及使用示例

     原文地址

  • 相关阅读:
    Django项目上线的准备工作
    Centos安装MySQL5.6并重置密码
    Centos7.4下安装Python3
    Django单表查询及其方法
    thinkphp 视图模型使用分析
    thinkphp 统计某个字段不重复数 总数
    表结构相同的表,且在同一数据库 数据复制
    crontab 定时任务 每过多少分钟执行
    js event事件
    shell 验证ip
  • 原文地址:https://www.cnblogs.com/wwct/p/12397328.html
Copyright © 2020-2023  润新知