关于上传文件 非ajax提交 得到后台数据问题

<form name="configForm" id="configForm" method="post" action="" >

  ..........

</form>

根据id获得表单数据然后发送ajax请求,获得后台返回数据,处理数据,完美。

但是如果需要上传文件,

<tr>
  <td class="fontSize">请选择文件:</td>
  <td><input type="" class="easyui-filebox" id="fileImport" name="file" value="" style="width:300px;"></td>
</tr>

这个文件数据后台得不到,表单数据这个file也是null,这时需要

<form name="configForm" id="configForm" method="post" action=""  enctype="multipart/form-data" >

添加的这个enctype="mutipart/form-data" 后台可以

@RequestMapping("/saveAppVersion")
@ResponseBody
public ModelMap saveAppVersion(String action, TbdAppVersion tbdAppVersion,
      @RequestParam(value = "file") MultipartFile file) {....

}

接收。

但是必须要表单提交请求数据,ajax仍然不行(具体原因可以百度。。)

<form name="configForm" id="configForm" method="post" action="/admin/systemConfig/saveAppVersion.do" enctype="multipart/form-data">

......

</form>

easyui里面的js  submit提交

handler : function() {
  $("#configForm").submit();
}

那么问题来了,提交过后如何获得后台返回数据呢?

<form name="configForm" id="configForm" method="post" action="/admin/systemConfig/saveAppVersion.do"

      enctype="multipart/form-data" target="myIframe"> 。。。。。 </form>

<iframe name="myIframe" id="if_json" style="display:none">
</iframe>

在表单里添加一个target,也就是说提交成功返回的数据写在了name为myIframe的这个iframe中,只刷新这个iframe,接下来就是获得这个数据了,

虽然百度不是什么好鸟,但是有些东西还是可以找到的,比如以下获取iframe数据的方法!

handler : function() {

  $("#configForm").submit();
  $("#if_json").load(function(){//获取iframe中的内容
  var body = $(window.frames[‘myIframe‘].document.body);
  var data = eval(‘(‘ + body[0].textContent + ‘)‘);
    if(data.resultCode && data.resultCode != 0){
                .........
    }else{

         .........

        }
  });

}

时间: 2024-10-06 02:22:27

关于上传文件 非ajax提交 得到后台数据问题的相关文章

ajax 上传文件,post上传文件,ajax 提交 JSON 格式的数据

ajax简介 前后台做数据交互 前后端做数据交互的方式(三种): (1)浏览器窗口输入地址(get的方式)(2)form表单提交数据(3)ajax提交数据 特点 特点: (1)异步 异步与同步的区别:同步是请求发过去,要等着回应:异步不需要等待,可以进行其他操作 (2)局部刷新 使用 使用: (1)url:匹配的路由 (2)type:发送的的方式 (3)data:发送的数据 (4)success:发送的数据成功回调条数 $('.btn').click(function () { $.ajax({

android post方式上传文件(模拟表单格式数据提交)

表单提交内容为: POST /upload.php?zp_id=ab46ca6d703e3a1580c1c9b8b3a8fb39 HTTP/1.1Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/v

上传文件、ajax上传文件

一.普通上传文件 1 后台 from django.shortcuts import render,HttpResponse # Create your views here. def login(request): if request.method == 'GET': return render(request, 'login.html') def fileupload(request): myfile=request.FILES.get('myfile') with open(myfile

如何使用multipart/form-data格式上传文件(POST请求时,数据是放在请求体内,而不是请求头内,在html协议中,用 “\r\n” 换行,而不是 “\n”)

在网络编程过程中需要向服务器上传文件.Multipart/form-data是上传文件的一种方式. Multipart/form-data其实就是浏览器用表单上传文件的方式.最常见的情境是:在写邮件时,向邮件后添加附件,附件通常使用表单添加,也就是用multipart/form-data格式上传到服务器. 表单形式上传附件 具体的步骤是怎样的呢? 首先,客户端和服务器建立连接(TCP协议). 第二,客户端可以向服务器端发送数据.因为上传文件实质上也是向服务器端发送请求. 第三,客户端按照符合“m

上传文件和AJAX验证

AJAX验证用户名是否重复:verify 查找   //执行AJAX//参数一:参数传递的页面 $.post("verifyUserName.lovo",//参数二:传递到某个页面的参数,可以是一个也可以是多个,所以用数组表示  {  "userName":userName,          },//参数三:回调函数,data表示返回页面的数据,是个字符串:status是返回页面的状态 function(data,status){  if(data=="

带有file标签文件上传的 form ajax提交的方法:jQuery的ajaxSubmit()

这篇文章主要介绍了jQuery使用ajaxSubmit()提交表单示例,使用延第三方插件jquery.form实现,需要的朋友可以参考下. ajaxSubmit(obj)方法是jQuery的一个插件jquery.form.js里面的方法,所以使用此方法需要先引入这个插件.如下所示: <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script><script src="htt

使用HttpClient以文件流的方式上传文件(非multipartFormData方式)

@Test public void testAdd() throws IOException { HttpPost post = new HttpPost("http://localhost:8182/api/media/add?app=test&access_token=1234&fileName=测试一下.jpg&ContentType=image/jpeg"); HttpEntity entity = new FileEntity(new File(&qu

asp.net MVC ajax上传文件

普通上传 view: <body> <form id="form1" method="post" action="@Url.Action("UploadFile","Mydemo")" enctype="multipart/form-data"> <input type="file" name="file"/>

一个ajax实现表单上传文件的神器 formdata

通过传统的form表单提交的方式上传文件: $.ajax({ url : "http://localhost:8080/STS/rest/user", type : "POST", data : $( '#postForm').serialize(), success : function(data) { $( '#serverResponse').html(data); }, error : function(data) { $( '#serverResponse