a487487487
a487487487
采纳率46.7%
2016-09-23 02:53 阅读 7.5k
已采纳

ajax上传文件错误405(method not allow)

 <form id= "uploadForm">    
      <p >指定文件名: <input type="text" name="filename" value= ""/></p >    
      <p >上传文件: <input type="file" name="file"/></ p>    
      <input type="button" value="上传" onclick="doUpload()" />    
</form>    

function doUpload() {    
     var formData = new FormData($( "#uploadForm" )[0]);    
     $.ajax({    
          url: 'http://localhost:8080/cfJAX_RS/rest/file/upload' ,    
          type: 'POST',    
          data: formData,    
          async: false,    
          cache: false,    
          contentType: false,    
          processData: false,    
          success: function (returndata) {    
              alert(returndata);    
          },    
          error: function (returndata) {    
              alert(returndata);    
          }    
     });    
}    

想做一个无刷新上传但出了这个问题。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    showbo GoCityPass新加坡曼谷通票 2016-09-23 03:27

    你那个地址不允许post请求,自己检查服务器配置

    点赞 评论 复制链接分享
  • qq_35718410 星空下的嗳 2016-09-23 03:05
  • a487487487 a487487487 2016-09-24 00:01

    可算是解决了

     <body>
        <form id="uploadForm" name="uploadForm" enctype="multipart/form-data" >
            <input id="file" type="file" />
            <button id="upload" onclick="doUpload()" type="button">upload</button>
        </form>
    </body>
    
         <script type="text/javascript">
            function doUpload() {
                var formData = new FormData();
                formData.append('file', $('#file')[0].files[0]);            
                $.ajax({
                    url: 'Ashx/uploadFile.ashx',
                    type: 'POST',
                    cache: false,
                    data: formData,
                    processData: false,
                    contentType: false
                }).done(function (res) {
                    alert(res);
                }).fail(function (res) {
                    alert(res);
                })
            }
        </script>
    
       public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                HttpFileCollection files = context.Request.Files;
                if (files.Count > 0)
                {
                    foreach (string str in files)
                    {
                        HttpPostedFile file = files[str];
                        string path = System.AppDomain.CurrentDomain.BaseDirectory + "uploadFiles\\" + file.FileName;
                        file.SaveAs(path);
                    }
                    context.Response.Write("上传成功");
                }
            } 
    

    在form表单中var formData = new FormData($( "#uploadForm" )[0]);
    我不知道为什么formData获取不到文件,通过id的方式的却可以
    希望哪位知道的可以告诉下我
    $('#file')[0].files[0].size可以获取你file的大小,b为单位
    保存文件时saveas时请映射到具体磁盘路径

    点赞 评论 复制链接分享

相关推荐