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)这样才可以映射到。
  • 相关阅读:
    转发和重定向的区别
    描述Session跟Cookie的区别(重要)
    JSP的4大域对象
    描述JSP的9大内置对象(不重要)
    描述JSP和Servlet的区别
    Pytest系列(16)- 分布式测试插件之pytest-xdist的详细使用
    Pytest系列(15)- 多重校验插件之pytest-assume的详细使用
    Pytest系列(14)- 配置文件pytest.ini的详细使用
    Pytest系列(13)- 重复执行用例插件之pytest-repeat的详细使用
    Pytest系列(12)- 测试结果生成HTML报告插件之pytest-html的详细使用
  • 原文地址:https://www.cnblogs.com/taiyanhong/p/7750361.html
Copyright © 2011-2022 走看看