网易有道笔试,实现upload功能

基础知识 https://developer.mozilla.org/en-US/docs/AJAX
upload(url,form,option)实现上传功能,
url:String表示上传的目标地址
form: HTMLFormElement 表单节点,待上传的文件
option:有两个部分,onload,是一个函数,上传成功回调,输入是服务器返回的json数据,onerror表示上传失败的信息。

调用方式
upload("ddd",form,{onload:function(){},onerror:function(){})

var upload = function(url,form,option){
  var xhr = XMLHttpRequest();
  xhr.onreadystatechange = function(){
   if(xhr.readyState == 4){
    if (httpRequest.status === 200) { 
     option.onload(JSON.parse(xhr.responseText)); 
    } 
    else { 
     option.onerror(xhr.status);
    }
  }
 }
  xhr.open("post",url,true);
  xhr.send(serialize(form));
}

uploadPromise("url",form).then(function(){},function(){})要返回promise

function uploadPromise("url",form){
   return new Promise(function(resolve,reject){
      option = {
         "onload":function(result){
              resolve(result);  
          },
         "onerror":function(error){
              reject(error);
          }
      }
      var req = upload("url",form,option);
   });
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自:http://www.cnblogs.com/txw1958/archive/2013/01/19/286...
    php_bruce阅读 2,320评论 1 5
  • //本文内容起初摘抄于 阮一峰 作者的译文,用于记录和学习,建议观者移步于原文 概念: 所谓的Promise,...
    曾经过往阅读 1,260评论 0 7
  • 1. 字符串 ASCII字符可以以\#XX形式的十六进制表示,例如: 还可以用\u####表示一个Unicode字...
    6ebb5d08123d阅读 586评论 0 1
  • ҉҉҈最҉҉҈҉҉҈҉҉҈近天҉҉҈气҉҉҈太҉҉҈热,文҉҉҈字҉҉҈都҉҉҈出҉҉҈汗҉҉҈了҉҉҈ ҈屏҈幕...
    我们爱拍照阅读 3,805评论 0 1
  • 你无意间把自己渲染成尘世的颜色, 如飘飞的红叶在季节里燃烧。 悬崖上那束野花,正隐姓埋名在世间疯长。 疲劳的阴影,...
    蓬年阅读 285评论 3 6