问题描述
我有这个方法,它使用 AJAX 将数据从表单发布到 C# 后端的 Web 方法。不幸的是,该方法没有被击中。我进行了研究,所有可访问的资源都表明这些是将表单数据传递给网络方法所需的 AJAX 选项。
有人能帮我理解为什么这不起作用吗?
注意:应用程序是asp.net webforms
<input type="file" id="uploader" />
var fileUpload = $("#uploader").get(0);
var files = fileUpload.files;
var fileData = new FormData();
for (var i = 0; i < files.length; i++) {
fileData.append(files[i].name,files[i]);
console.log(files[i]);
}
$.ajax({
type: "POST",url: "Pagename.aspx/method",data: fileData,contentType: false,cache: false,dataType: 'json',processData: false,})
解决方法
以下是我为至少让它返回响应而进行的更改。我根本没有处理文件上传。看看这是否能成功。
另请注意 JSON.stringify() 在“数据”行的使用。
$.ajax({
type: "POST",url: "test.aspx/method",data: JSON.stringify(fileData),contentType: "application/json; charset=utf-8",cache: false,dataType: 'json',processData: false
}).done(function(data) {
console.log(data);
});
网络方法:
[WebMethod]
public static string method()
{
return "success";
}