【发布时间】:2016-09-30 06:39:22
【问题描述】:
我正在尝试使用我的 Ajax 方法中的 FormData 方法将上传的图像 + 两个附加参数传递给我的 Web 服务,如下所示:
var formData = new FormData();
formData.append('file', $('#photo')[0].files[0]);
formData.append('u', "test");
formData.append('s', "Testing");
我的 ajax 调用概述如下:
$.ajax({
url: "/admin/WebService/test.asmx/UploadImage",
type: "POST",
processData: false,
contentType: false,
data: formData,
success: function (response) {
console.log(response);
},
error: function (er) {
alert(er);
}
});
调用此网络方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string UploadImage()
{
if (System.Web.HttpContext.Current.Request.Files.AllKeys.Any())
{
var t= System.Web.HttpContext.Current.Request.Files["s"];
var c= System.Web.HttpContext.Current.Request.Files["u"];
var p = System.Web.HttpContext.Current.Request.Files["file"];
}
else
{
return "Error";
}
return "Error";
}
我遇到的问题是参数“u”和“s”为空,但在引用文件时我能够获得它的值。
在搜索网络时,我的印象是您可以在使用这种方法时指定尽可能多的键/值,除非我被误导了?有人可以解释一下为什么这两个参数为空吗?提前致谢。
【问题讨论】:
标签: ajax asmx webmethod form-data