io.upload

Module

Method

io.upload()
XHR upload ( url , form , [ data , callback , dataType ] )
发送 jsonp 请求,将返回 json 信息作为第一个参数调用 callback 回调.
Parameters:
  • url (string) – 请求地址
  • form (HTMLElement|string) – 表单元素,格式参见 KISSY selector .
  • data (Object|string) – 请求附带的参数,参见 data .
  • callback (function) – 请求成功后的回调,参见 success .
  • dataType (string) – 传到回调函数作为参数的数据类型,参见 dataType
Returns:

代表本次请求的 xhrObj

Return type:

XhrObj

XHR upload ( url , form,[ callback , dataType ] )
data 可忽略,同上个函数描述.

实际上该函数是 io() 的 shortcut

io.upload = function(url, form, data, callback, dataType) {
    if (S.isFunction(data)) {
        dataType = callback;
        callback = data;
        data = null;
    }
    return io({
        url:url,
        type:'post',
        dataType:dataType,
        form:form,
        data:data,
        success:callback
    });
};

Demo

向 doUpload.html 上传文件并读取 json 响应

<!DOCTYPE html>
<html>
<head>
    <style>
        button { margin:10px; }
        div { color:blue; font-weight:bold; }
        span { color:red; }
    </style>

    <script src="http://a.tbcdn.cn/s/kissy/1.2.0/kissy.js"></script>
</head>
<body>
  <button id='up'>upload to doUpload.html</button>
  <form method='post' enctype='multipart/form-data' id='f'>
        <input name='user' value='chengyu' readonly />
  </form>

<script>
    KISSY.ready(function(S){
        var $=KISSY.Node.all;        
        $("#up").on("click",function(){            
            S.io.upload("doUpload.html","#f",function(d){
                alert("user : "+d.user+" \n email : "+d.email);                
            },"json");                                            
        });
    });
</script>

</body>
</html>