zoukankan      html  css  js  c++  java
  • springboot+layui用js发送put请求,并接收对象

    有以下几点要注意的

    springboot中要设置这个过滤器,如果是在springmvc中,就在web.xml中设置,道理是一样的

    @Configuration
    public class WebConfig extends WebMvcConfigurerAdapter {
    	// 就是这个
    	@Bean
    	public HttpPutFormContentFilter httpPutFormContentFilter() {
    		return new HttpPutFormContentFilter();
    	}
    
    } 

    在Controller中要在接收的对象前面设置@RequestBody

    	@RequestMapping(value = "/test", method = { RequestMethod.PUT })
    	public JSONObject gmm(@RequestBody UserVo userVo) throws Exception {
    		JSONObject obj = new JSONObject();
    		System.out.println("---------------");
    		return obj;
    	}
    

      

    layui中的请求方法

        var url = "/test";
        var data = JSON.stringify($('.layui-form').serializeObject());//这个方法很关键JSON.stringify(),没有这个方法后台转换不了
        ajaxsubmit(url,data);
        function ajaxsubmit(url,data){
        	$.ajax({
         	    headers: {
         	        'Accept': 'application/json',
         	        'Content-Type': 'application/json'
         	    },
        	    url:url,
        	    data:data,
        	    type:"PUT",
        	    dataType:"json",
        	    success:function(data){
        	        if(typeof(data) != 'undefined'){
        	            layer.msg(data.message);	
        				setTimeout(function(){reload()},1*1000);
        	        }else{
        	        	layer.msg("返回错误,请联系管理员!");	
        	        }
        	    },
        	    error:function(data){
        	    	layer.msg("请求错误,请联系管理员!");	
        	    }
        	});
        	}
    

      附一个form转json对象的办法,这个方法上面有用到,是自定义的

        $.prototype.serializeObject = function () {
            var a,o,h,i,e;
            a = this.serializeArray();
            o={};
            h=o.hasOwnProperty;
            for(i=0;i<a.length;i++){
                e=a[i];
                if(!h.call(o,e.name)){
                    o[e.name]=e.value;
                }
            }
            return o;
        }
    

      参考链接

    https://blog.csdn.net/kshon/article/details/82682768

    https://blog.csdn.net/pingweicheng/article/details/81019850

    https://blog.csdn.net/qq_37144354/article/details/79922048

    https://blog.csdn.net/weixin_33973609/article/details/93323390

        

    摘录第4篇参考文章关于传参的一些总结:

    1:JSON提交方式: Content-Type:application/json 后端:对象接收:除了:get请求,不需要增加@ReqeustBody注解,其它的都需要。 参数接收:使用:@RequestParam 或者不用。 使用这种请求: 其它后端同事开发的时候:客户端(SOAP)模拟请求时,有了@ReqeustBody参数接收不到,于是去掉,前端开发时,更新代码又加上。因为公司网不能下载插件,后换成了:form表单提交。 2:form表单提交方式:Content-Type:application/x-www-form-urlencoded form表单数据格式:为:param1=111
    &param2=222 这种开式。 后端:对象接收:除了:所有请求:都不加@ReqeustBody注解 参数接收:可以使用:@RequestParam 或者不用。
  • 相关阅读:
    Linux中搭建Maven私服
    NIO类库
    JAVA网络通信IO-NIO-AIO-Netty
    栈和队列
    JAVA四类八种基本数据类型
    JAVA基础—线程池
    vue 数组push元素 视图没更新
    小程序♥云开发
    vue2.0 transition 手风琴
    element-ui 表格翻页多选后仍然记忆所选项,数据回显
  • 原文地址:https://www.cnblogs.com/langxiansheng/p/12589298.html
Copyright © 2011-2022 走看看