AJAX 方法未发布到 Web 方法

问题描述

我有这个方法,它使用 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";
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...