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)这样才可以映射到。
  • 相关阅读:
    linux shell在while中用read从键盘输入
    ubuntu14.04折腾迅雷xware
    select与epoll分析
    ubuntu 14.04下练习lua
    C++中的重载、覆盖、隐藏
    删除ubuntu旧内核
    fcntl函数加文件锁
    系统中断与SA_RESTART
    linux使用共享内存通信的进程同步退出问题
    leetcode-easy-others-268 Missing Number
  • 原文地址:https://www.cnblogs.com/taiyanhong/p/7750361.html
Copyright © 2011-2022 走看看