zoukankan      html  css  js  c++  java
  • 结合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,
    乾坤未定,你我皆是黑马
  • 相关阅读:
    资料收集
    layui 设计资源——2.0 版本的 Axure 组件包,产品交互设计利器
    照片自动按时间分类助手
    回顾2017,规划2018,展望2019
    coder/programmer engineer Chirf Technology Offcer
    新手开公司创业,这些坑千万别掉进去!
    ASP.NET MVC中的Global.asax文件
    SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.0
    快速开发之代码生成器(asp.net mvc4 + easyui + knockoutjs)
    PowerDesigner逆向工程导入MYSQL数据库总结
  • 原文地址:https://www.cnblogs.com/liuqijia/p/11457397.html
Copyright © 2011-2022 走看看