您现在的位置:首页 >> 前端 >> 内容

ajax如何异步表单提交并实现文件上传

时间:2017/10/3 14:32:00 点击:

  核心提示:ajax如何异步表单提交并实现文件上传。公司的同事在前端开发的过程中,希望通过ajax的提交方式来提交表单数据,并且需要同时实现文件的上传操作,因此,我找时间写了一个demo,做了下测试,并且成功了。...
ajax如何异步表单提交并实现文件上传。公司的同事在前端开发的过程中,希望通过ajax的提交方式来提交表单数据,并且需要同时实现文件的上传操作,因此,我找时间写了一个demo,做了下测试,并且成功了。

下面就是简单的实现代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title></title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="sign_encry.js"></script>
</head>
<body>
<form name="form1" id="form1">
    <input type="file" name="image[]"><br>
    <input type="file" name="image[]"><br>
    标题:<input type="text" name="title" value=""><br>
    内容:<input type="text" name="question" value=""><br>
    <input type="hidden" name="token" value="cccc83a1ceb5d8108ca99a0cbc50f9dd">
    <input type="hidden" name="model" value="wap">
 
    <input type="button" value="提交" onclick="tosubmit();">
</form>
<script type="text/javascript">
 
    function tosubmit(){
        var form = document.getElementById("form1"),
            time = Math.ceil((new Date()).getTime()/1000),
            method = 'qa.ask',
            sign = '';
 
        //生成签名
        var set_sign_data = {time:time,method:method}, fs = $(form).serializeArray(),x;
        for(x in fs){
            set_sign_data[fs[x].name] = fs[x].value;
        }
 
        console.log('签名数据:');
        console.log(set_sign_data);
        sign = app_sign.create(set_sign_data);
        console.log('签名结果:');
        console.log(sign);
 
        //表单数据
        var formdata = new FormData(form);
        formdata.append('time', time);
        formdata.append('sign', sign);
 
 
        $.ajax({
            type : 'post',
            url : 'https://api.xxxx.com/?method=qa.ask',
            data : formdata,
            cache : false,
            processData : false, // 不处理发送的数据,因为data值是Formdata对象,不需要对数据做处理
            contentType : false, // 不设置Content-type请求头
            success : function(res){
                console.log(res);
            },
            error : function(res){
                console.log(res);
            }
        });
    }
 
</script>
</body>
</html>

这是浏览器调试截图:

 

ajax如何异步表单提交并实现文件上传 ajax如何异步表单提交并实现文件上传

 

 

Tags:AJ JA AX X如 
作者:网络 来源:ljihe的博客