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)这样才可以映射到。
  • 相关阅读:
    Unity3D 开发之shader教程(浅谈光照之漫反射diffuse)
    游戏引擎浅析
    Unity3D 中的三个Update()方法
    Unity 游戏存档 PlayerPrefs类的用法
    unity3d中 刚体(Rigidbody) 碰撞体(Collider) 触发器(Is Trigger)
    Unity 3D制作2D游戏的几种方法
    Unity3D 常用插件
    Unity3D协同程序(Coroutine)
    Unity中 动态加载 Resources.Load()和Asset Bundle 的区别
    Unity3D 游戏开发之内存优化
  • 原文地址:https://www.cnblogs.com/taiyanhong/p/7750361.html
Copyright © 2011-2022 走看看