【发布时间】:2015-05-29 13:11:17
【问题描述】:
基本上,我正在与上传者 (dropzone.js) 合作,并将其整合到我的网站中。将文件添加到服务器工作正常,但是我无法删除它们。我的 JavaScript:
$(document).ready(function () {
Dropzone.autoDiscover = true;
$("#dZUpload").dropzone({
url: "uploadHandler.ashx",
addRemoveLinks: true,
success: function (file, response) {
file.previewElement.classList.add("dz-success");
console.log("Successfully uploaded: " + file.name);
},
error: function (file, response) {
file.previewElement.classList.add("dz-error");
},
init: function () {
var dZUpload = this;
this.on("removedfile", function (file) {
$.ajax({
type: "POST",
url: "uploadHandler.ashx/DeleteFile",
data: { filename: file.name },
dataType: "json",
success: function (repsonse) {
if (data == "success") {
alert("Successfully deleted.");
this.removeFile(file);
}
else {
alert("Error deleting file.");
this.removeFile(file);
}
}
});
});
}
});
});
这是我的服务器端处理程序上deleteFile 函数的代码:
<System.Web.Services.WebMethod()> _
Public Function DeleteFile(filename As String) As String
Try
Dim Yes As String = "success"
System.IO.File.Delete(Path.Combine(HttpContext.Current.Server.MapPath("~/serverFiles/"), filename))
Return Yes
Catch ex As Exception
Dim No As String = "failure"
Return No
End Try
End Function
应该发生什么:当单击上传文件的删除链接时,客户端通过Ajax 向服务器发送POST。然后服务器从磁盘上删除文件并向客户端发送一条消息,说它是成功的。
这是我第一次使用 Ajax,发生了什么?为什么没有发送消息?
编辑:当我将 dataType: "json" 更改为 test 时,我收到以下错误:
Uncaught ReferenceError: data is not defined
$.ajax.success @ fileUploader.aspx:31
第 31 行是这样的:if (data == "success") {
所以它好一点,但我仍然不确定如何继续。
【问题讨论】:
-
控制台日志或服务器端有错误信息吗?
-
请使用error,complete方法并放一些日志来检查错误,如果到达错误块有一些错误,两种情况都会调用complete
-
@MatthewNorth 在客户端和服务器端都没有错误,这几乎就像在下面的行
$.ajax({(第 16 行代码 sn-p 中的第 16 行)下面没有处理 Ajax ) -
尝试将类型:“POST”更改为方法:“POST”,看看是否有帮助
-
另外,您可以尝试将 data: file.name 更改为 data: JSON.stringify({ filename: file.name }),并添加 contentType: "application/json; charset=utf-8",
标签: javascript jquery asp.net ajax vb.net