ajax提交iframe中表单(不跨域)map型json数据到后台处理 spring boot,mybatis plus,layui

首先说一下这里涉及的技术和问题


前端用的layui框架,现在问题是有一个iframe,数据是根据后台处理的返回一个html数据,并不是 而是在后台处理了这个html传到前台,并赋值给iframe,这样不存在跨域问题,这个html数据有很多input框,现在就是要在iframe输入数据,并提交到后台.首先解析数据,获得input框的name属性,并没有id属性,然后在前端根据键值对自定义了map数据,存入[key:name,value:输入的值],转为json数据提交到后台并处理. iframe中数据,并不跨域,输入数据提交到后台
首先看一下layUI的前台提交数据

 form.on('submit(regist-form-submit)', function (data) {
                function ObjData(key,value){
                    this.Key=key;
                    this.Value=value;
                }//定义key value
                var array=[];//定义array数组
                var vsa= document.getElementById('uploadiframe').contentWindow.document;
                var inputs=vsa.getElementsByTagName("input");
                for(var i=0; i<inputs.length; i++)
                {
                    var key=inputs[i].name;
                    var value=inputs[i].value;
                    var s=new ObjData(key,value); //创建键值对象
                    array.push(s);//存入到数组中[{key:xx,value:yy},{key:xx,value:yy}]
                }
               //转换数据
                var postData =  JSON.stringify(array);
                //ajax提交数据
                    $.ajax({
                        type:"post",
                        url:"csContract/register",
                        data:{
                            'json':postData,//数据
                            'toId':csTemplepost.toId,//带数据id
                        },
                        success:function(res){
                            console.log(res);
                            layer.closeAll();
                            febs.alert.success('合同登记成功');
                        }
                    });
            });

提交的json传到后天去处理转化并存到相应的数据库表中

 @Log("新增CsContract")
    @PostMapping("csContract/register")
    @ResponseBody
    @RequiresPermissions("register:view")//接受json数据
    public Result addCsContract(@RequestParam String json, @RequestParam String toId, CsContract csContract) throws BusException {
        try {
            JSONArray arr = JSONArray.parseArray(json);
                for(int i=0;i<arr.size();i++){
                    //1、把里面的对象转化为JSONObject
                    JSONObject job = arr.getJSONObject(i);
                    // 2、把里面想要的参数一个个用映射的方式获取到
                    String key=job.getString("Key");
                    String value=job.getString("Value");
                 //
                }

这个代码不能贴完见谅,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值