• 结合FTP服务器使用文件上传异常


    使用ajax实现文件上传浏览器控制台报异常项:jquery-3.2.1.min.js:4 Uncaught TypeError: Illegal invocation

    原因:1、请求类型有误,如:post请求,但在后台设置的是get请求

       2、参数有误,如:没有传参,或是参数对应不上去

    在使用ajax上传文件的时候:

    举例:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>上传</title>
     6     <script type="text/javascript" src="/jquery-3.2.1.min.js"></script>
     7     <script type="text/javascript">
     8         $(function () {
     9             $("#uploadAdd").click(function () {
    10                 $("#formUpload").append("<input type='file' name='multipartFiles' /><br/>")
    11             });
    12 
    13             $("#uploadButton").click(function () {
    14                 // alert(new FormData($("#formUpload")[0]));
    15                 $.ajax({
    16                     url:"doUpload",
    17                     type:"POST",
    18                     // data:$("#formUpload").serialize(),
    19                     data:new FormData($("#formUpload")[0]),
    20                     //不要设置content-type请求头
    21                     contentType:false,
    22                     //不要处理发送的数据
    23                     processData:false,
    24                     success:function (msg) {
    25                         if(msg!=null) {
    26                            var msgs= msg.split(";");
    27                                for(var i=0;i<msgs.length;i++){
    28                                 $("#divUpdate").append("<img src=" + msgs[i] + "  alt='头像' />");
    29                             }
    30                         }
    31                     }
    32 
    33                 })
    34             })
    35         })
    36 
    37     </script>
    38 </head>
    39 <body>
    40 
    41 <form id="formUpload">
    42 头像上传:<input type="file" name="multipartFiles"/><br/>
    43 </form>
    44 <input type="button" value="SUBMIT" id="uploadButton"/>
    45 <input type="button" value="uploadAdd" id="uploadAdd"/>
    46 
    47 <div id="divUpdate"></div>
    48 </body>
    49 </html>

    因为要传递的参数是文件类型,所以要进行表单序列化,有两种方式;

    1  data:$("#formUpload").serialize(),
    2  或者:data:new FormData($("#formUpload")[0]),

    并且结合使用:

    1 告诉jQuery不要去处理发送的请求头
    2 
    3   processData:false,
    4 
    5   告诉jQuery不要去设置Content-Type请求头
    6 
    7   contentType:false,
    乾坤未定,你我皆是黑马
  • 相关阅读:
    HTML/网站一键打包APK工具(html网页打包安卓APP应用)
    四款最好用的html转苹果APP免上架免签名打包在线生成工具
    ios11,弹出层内的input框光标错位
    前端进阶小知识
    html数据交互小知识
    H5特殊情况解决方案
    H5个人不常用但感觉很重要的东西
    H5小知识
    Java SE 8 Programmer复习小结
    JSP页面中onSubmit方法不执行
  • 原文地址:https://www.cnblogs.com/liuqijia/p/11457397.html
Copyright © 2020-2023  润新知