当前位置: 首页 > news >正文

现在企业做门户网站wordpress 协议

现在企业做门户网站,wordpress 协议,html电子商务网站模版,百度代做seo排名接着上一篇ajax系列之用jQuery的ajax方法向服务器发出get和post请求写#xff0c;这篇主要写如何利用ajax和FormData实现页面无刷新的文件上传效果#xff0c;主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的FormData接口。关于FormData#xff0c;大家可以看MDN文…接着上一篇ajax系列之用jQuery的ajax方法向服务器发出get和post请求写这篇主要写如何利用ajax和FormData实现页面无刷新的文件上传效果主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的FormData接口。关于FormData大家可以看MDN文档。 1先看效果图 期望的功能和效果很简单点击页面中的上传文件表单控件选择文件后点击“ajax提交”将文件上传至服务器上传成功后页面给出一个简单的提示。 2前端的代码 看下html代码 1 div classbox2 div3 div classitem4 input typefile namemyfile stylefont-size: 0.7rem;5 /div6 div classitem7 button typebutton styledisplay: block; padding: 4px 18px; classbtn-defaultajax提交/button8 /div9 div classitem 10 button typesubmit styledisplay: block; padding: 4px 18px; classbtn-defaultform提交/button 11 /div 12 /div 13 div classprompt stylefont-size: 0.7rem;/div 14 /div 15 script src../../js/jquery-3.1.0.min.js/script 16 script srcupload01.js/script 代码很简单需要注意的是页面中没有用到form表单那么怎么提交数据呢答案是用FormData来模拟表单中的 input typefilenamemyfile 控件。另外页面中的样式没有写出来。下面来看下html中引入的upload01.js代码这个是重点。 upload01.js代码 1 $(function($) {2 $(input[namemyfile]).on(change, function(e) {3 $(button[typebutton]).on(click, function(e) {4 var formData new FormData();5 // formData.ppend(name, element);6 formData.append(myfile, $(input[namemyfile])[0].files[0]);7 $.ajax({8 url: upload01.php,9 method: POST, 10 data: formData, 11 contentType: false, // 注意这里应设为false 12 processData: false, 13 cache: false, 14 success: function(data) { 15 if (JSON.parse(data).result 1) { 16 $(.prompt).html(文件${JSON.parse(data).filename}已上传成功); 17 } 18 }, 19 error: function (jqXHR) { 20 console.log(JSON.stringify(jqXHR)); 21 } 22 }) 23 .done(function(data) { 24 console.log(done); 25 }) 26 .fail(function(data) { 27 console.log(fail); 28 }) 29 .always(function(data) { 30 console.log(always); 31 }); 32 }); 33 }); 34 });   (1) 下面解释下FormData涉及到了代码的第4、6、10行。 第4行 var formData  new FormData(); 实例化了一个空的FormData对象可以认为它就是一个form表单但现在里面什么控件都没有。 第6行 formData.append(myfile, $(input[namemyfile])[0].files[0]); 给实例化的formdata对象添加一个控件注意这里添加的是已有控件 input typefile namemyfile stylefont-size: 0.7rem; 见html代码第4行。 FormData.append(name, value, filename)方法可以很方便的以“键-值”对的形式给FormData添加控件注意第3个参数“上传文名”是可选的它的具体语法和用法见FormData。 第10行将实例化的formData作为jQuery.ajax()方法data参数的值传递进去提交给后端服务器。 (2) 再解释下ajax()方法中的contentType、processData参数。 contentType参数发起http请求时设置的请求头中的contentType。jQuery.ajax()默认的值为application/x-www-form-urlencoded; charsetUTF-8这个在大多数情况下都是适用的。 但经过测试保持默认时会报错因为发送的数据中有input typefile(上传文件)那么这时contentType应该设置为multipart/form-data但如果指定为这个类型服务端php就会报这个错误 Warning: Missing boundary in multipart/form-data POST data in Unknown on line 0 。具体原因现在还不清楚所以这里先将contentType设置为false即不让jQuery设置contentType。 processData参数根据jQuery.ajax()文档中的解释默认情况下jQuery会处理发送的数据将数据按照application/x-www-form-urlencoded的要求转换为查询字符串如果要发送的数据是DOMDocument或者不需要处理就可以设置为false不让jQuery转换数据我们这里要发送的数据其实就是DOMDocument。 经过测试如果保持默认(true)的话在发起请求前js会报错 TypeError: append called on an object that does not implement interface FormData.  另外还有个dataType参数期望从服务器中返回的数据格式这里最好也不要指定而是让jquery自己根据http响应头中的contentType判断然后返回一个合适的数据类型。指定后不会影响后台程序的逻辑处理但你在前端接收的数据很可能不是期望的数据于是js就会报这一类错误 SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data 这个是将dataType指定为json后报的错误。 3后端的php代码 后端服务器是nginx用php来处理发送过来的数据代码也很简单   1 ?php2 // var_dump($_REQUEST); // 为空数组3 // var_dump($_FILES); //不为空4 5 // 当使用FormData配合ajax上传文件时$_REQUEST、$_POST都是nullphp://input也是null6 if (isset($_FILES) !empty($_FILES)) {7 if (move_uploaded_file($_FILES[myfile][tmp_name], $_FILES[myfile][name])) {8 echo {result: 1, filename: . $_FILES[myfile][name] . };9 } else { 10 echo {result: 0}; 11 } 12 }   代码的逻辑很简单这里就不多解释了。主要说下我在调试程序时遇到的问题遇到的问题总结起来就一句话当使用FormData配合ajax上传文件时$_REQUEST、$_POST都是空数组php://input也是null。可以看到我在代码中的第2、3、5行也写了相关的注释。为什么$_REQUEST会是空呢我查了些资料但没找到原因以后再找原因吧。   参考资料 jQuery.ajax() FormData
http://www.zqtcl.cn/news/220682/

相关文章:

  • 网站友链查询传到网站根目录
  • 网站服务器端口设置北京专业网络直播制作
  • 可以免费做演播的听书网站南京企业自助建站
  • 软件下载类型网站怎么做长沙官网优化技术
  • 药品网站订单源码外贸网站建设服务器
  • 深圳网站制作07551免费开发网站
  • 如何直接用jsp做网站不写servletwordpress模板 单栏
  • 长沙网站建设哪个公司好设计公司网站 唐山
  • 原创小说手机网站制作需要多少钱郴州seo外包
  • 深圳市大鹏建设局网站网站关键词没排名怎么办
  • 水果商城网站制作多少钱c#如何做公司网站
  • 国内做进口的电商网站网站建设的经验做法
  • 蚂蚁搬家公司官方网站免费网站软件制作
  • 搭建网站要用到的工具外链代发免费
  • 肥城网站建设流程oem中国代加工网
  • 到底建手机网站还是电脑网站网站视频怎么做
  • 小区网站建设前端手机网站
  • 做一个网站价格WordPress好看的404
  • 查看注册过的网站在线网站软件免费下载
  • 门户网站建设公司价位域名出售网站
  • 亿级流量网站架构自己制作一个网站
  • 企业网站seo成功案例天津网站建设制作品牌公司
  • 衡水做网站电话郏县建设局网站
  • 美工做网站尺寸多少钱怎么做网站免费的
  • 会计信息系统网站建设流程图手机网站图片宽度
  • 已备案网站增加域名wordpress 百度熊掌号
  • 网站建设维护课件ppt百度搜索一下百度
  • 重庆企业网站开发方案wordpress菜单插件
  • 江苏网站seo设计什么学习网站建设
  • 青海网站建设系统电商出口营销要多少钱