zoukankan      html  css  js  c++  java
  • ajax提交的问题点记录

    原始方式是这样的:

    var prId = $("#prId").val();
    var prNumber = $("#prNumber").val();
    var prPrname = $("#prPrname").val();
    var prRegion = $("#prRegion").val();
    var prPersonid = $("#prPersonid").val();
    var prRemarks = $("#prRemarks").val();

    var defaultSetting = {
    type : "post",
    dataType : "json",
    async : true,
    loadingFlag : true,
    traditional: false,
    contentType: "application/x-www-form-urlencoded",
    processData: true,

    data: {

    prId: prId,
    prNumber: prNumber,
    prPrname: prPrname,
    prRegion: prRegion,
    prPersonid: prPersonid,
    prRemarks: prRemarks
    },

    };

    当时试着用form序列化(form.serialize()),没成功映射到对象才那样写的,后来才知道。原来是因为form的input等标签没有name属性导致的。

    后来知道了简略版写成这样。

    var data=form.serialize()

    var defaultSetting = {
    type : "post",
    dataType : "json",
    async : true,
    loadingFlag : true,
    traditional: false,
    contentType: "application/x-www-form-urlencoded",
    processData: true,

    data: data,

    };

    如果data的数据是动态的,像更新时候追加属性的情况可以这样写:

    var data = $("#form").serializeJson();

    $.extend(data, {userId: $(this).data("dataId")});

    var defaultSetting = {
    type : "post",
    dataType : "json",
    async : true,
    loadingFlag : true,
    traditional: false,
    contentType: "application/x-www-form-urlencoded",
    processData: true,

    data: data,

    };

    当遇到文件上传时候,就要改改了,写成下面这样:

    var formData =new FormData($("#editForm")[0]);

    formdata.append("dustId", $(this).data("dataId"));

    var defaultSetting = {
    type : "post",
    dataType : "json",
    async : true,
    loadingFlag : true,
    traditional: false,
    contentType: "application/x-www-form-urlencoded",
    processData: true,

    data: formData ,

    };

    controller层:

    public void add(Project project)

    用对象接受这样是没问题的。

    以上方式是最常见的提交方式。

    下面说一种contentType: application/json提交的方法。

    这种方式提交文件是不行的

    var formdata= $("#editForm").serializeJson()

    var defaultSetting ={

    url: action,
    data: JSON.stringify(formdata),
    cache: false,
    contentType:"application/json",
    processData: false,
    async: false

    }

    controller层接受的时候

    public void add(@RequestBody Role role)这样才可以映射到。
  • 相关阅读:
    DRY原则和Shy原则
    GEO LBS服务
    Intellij IDEA转换类图、时序图
    使用HttpMessageConverter实现HTTP的序列化和反序列化
    通过@Valid注解对请求主体中的参数进行校验
    Java-Enumeration ( 枚举类)
    SPI的实现原理
    python批量获取gitlab里面所有项目的代码
    浙江省高等学校教师教育理论培训上机考试小程序设计架构
    springboot~使用freemaker模版进行部署
  • 原文地址:https://www.cnblogs.com/taiyanhong/p/7750361.html
Copyright © 2011-2022 走看看