我使用jquery和ajax上传文件完成了一个完整的javascript函数......一切都工作得很好,直到我意识到对于某些文件,错误函数是在ajax而不是成功函数中触发的。以下是我的代码:
$.ajax({
url: 'MyService.asmx/UploadFiles',
type: "POST",
contentType: false,
processData: false,
data: fileData, // form data that contains file and some data
dataType: "text",
success: function (response) {
...
}
error: function (jqXHR, exception) {
//alert(jqXHR.status);
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
alert(msg);
}
});
引发的错误是“未连接。\ n验证网络”。 我搜索了这个错误,我发现当服务无法访问或跨站点脚本(访问被拒绝)时抛出它...奇怪的是有些文件上传成功,有些文件没有上传,这意味着服务是无法访问可访问和访问...有关文件类型,它们都是最大大小为5 MB的文档文件,每当我删除无法上传的文件中的所有内容时,我再次尝试上传:功能成功...那么为什么有些文件成功上传而其他文件没有?如何解决我的问题才能上传所有文件?
更新
我在onchange事件中触发上传功能:
<input type="file" class="HideFile" onchange="UploadFilesnew();" onclick="resetInput(this)" id="UploadFilenew" />
;
我的输入位于.aspx页面中的asp:UpdatePanel内部,因此没有表单和操作
答案 0 :(得分:1)
请在web.config中添加以下代码。然后再试一次。我认为有时请求会因文件大小而失败。
<system.web>
<httpRuntime maxRequestLength="1048576" />
</system.web>