在使用JavaScript将带有附加文件的formdata发送到服务器时收到错误

问题描述 投票:0回答:1

我在asp.net 4.5解决方案中具有如下所示的HTML代码,使用户能够选择要上传到服务器的文件。

<input class="form-control valid" id="rptScreenShot" type="text" style="float:left;" runat="server"
                               data-val="true" data-val-maxlength="The field Report Sample must be a string or array type with a maximum length of '600'." 
                               data-val-maxlength-max="600" value="" aria-invalid="false" />
<label class="btn btn-default btn-file">
     Browse <input class="form-control" id="upld_sample1" type="file" name="file_rptsample1" style="display: none;">
</label>

然后,我尝试使用FormData将文件上传到服务器,如下所示:

<script>
     document.getElementById('upld_sample1').onchange = function () {
     var fileInput = document.getElementById('upld_sample1');
     var file = fileInput.files[0];
     var formData = new FormData();
     formData.append('file', file);
     var xhr = new XMLHttpRequest();
     xhr.open('POST', '/upload/path', true);
     xhr.send(formData);
     };
</script>

但是我收到以下错误:

无法加载资源:服务器的响应状态为405(不允许使用方法)

当我将POST更改为GET时,我看到了错误:403 FORBIDDEN

我无法解决。我也可以通过其他方式将文件发送到服务器。任何帮助或建议,将不胜感激。

javascript jquery html jquery-file-upload form-data
1个回答
0
投票

您的问题在后端,而不是在JavaScript中。您的后端服务器拒绝POST方法,并且鉴于您使用GET方法获得了禁止的错误,因此在端点“ / upload / path”上似乎存在访问控制。您可以向我们展示“ / upload / path”后面的后端代码吗?

© www.soinside.com 2019 - 2024. All rights reserved.