js提交数据

7 篇文章 0 订阅

    js提交表单数据时把form中的所有表格元素的name与value组成一个queryString,提交到后台。这用jQuery的方法来说,就是serialize. 

$(form).serialize();在后台解析出对应的字符值。我的一篇博客 C#获取url参数值是这样实现的,这种在后端开发的时候要处理特殊的字符,也比较麻烦。
而js内置的的Formdata提交的数据很好解析. 

        html中form标签添加属性enctype=”multipart/form-data"

        jquery的ajax实现

$.ajax({  
      url: ‘/upload’,  
      type: ‘POST’,  
      cache: false,  
      data: new FormData($(form)),
      processData: false, 
      contentType: false 
}).done(function(res){ 
 //
}).fail(function(res) {}); 
  特别说明:

   1. 标签添加enctype属性新值,表示在提交前不编码,默认的值会在表单提交前编码.

   2.processData:false.是因为data的值是FormData对象,无需编码.

   3.cache设置为false,上传时无需缓存

   4.contentType设为false,无需指定编码格式.

  FormData 
对于form,非form元素,都是可以使用的,最关键的一点是: 
var formdata1 = new FormData(form); 
或者是 
var formdata2 = new FormData(); 
formdata2.append(“username”,”admin”); 
FormData实际上是把数据转换成了字符串. 
ajax的操作都一样.

附加: 
读jquery的api时我才发现自己曾经忽略了很多的细节。jquery把jsonp的实现也归到了ajax,实际上和ajax没关系。只是为了对外有统一的操作。jsonp跨域访问是利用了script标签可以跨域实现的。我之前一直糊里糊涂的用jquery的ajax,没有出问题真是奇怪。jquery内部容错很强大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值