我试图从jQuery调用serverside方法。它在Firefox中工作正常,但不在IE8和IE9中。无法为文件上传输入值调用jQuery Ajax方法
请找到下面的代码示例:
<div>
<asp:FileUpload ID="flAppIcon" runat="server" onchange="GetFileSize();"/>
<asp:HiddenField ID="_hdnAppIcon" runat="server" Value="0" />
</div>
<script type="text/javascript" language="javascript">
function GetFileSize() {
var PageURL = '<%= ResolveUrl("~/WebForm16.aspx") %>'
var test = ($('#<%=flAppIcon.ClientID%>').val()).toString();
$("#<%=_hdnAppIcon.ClientID%>").val(test);
alert($("#<%=_hdnAppIcon.ClientID%>").val());
$.ajax({
type: "POST",
url: PageURL + '/GetFileSizeDetails',
data: '{file: "' + $("#<%=_hdnAppIcon.ClientID%>")[0].value + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
</script>
[System.Web.Services.WebMethod]
public static string GetFileSizeDetails(string file)
{
return "100";
}
谁能帮助我知道这个问题的根本原因是什么?
感谢&问候, 桑托斯·库马尔Patro
我不熟悉你usuing服务器端语言,但通常你需要你的服务器端函数实际打印的值,而不是尝试只是返回它。 – 2012-04-26 16:06:13
不,他的语法是正确的 – tedski 2012-04-26 16:10:11
看看'$(“#<%= _ hdnAppIcon.ClientID%>”)[0] .value'正在返回 它的格式为'C:\ fakepath \ your-file.jpg '这样就不会通过webmethod很好地发送 – tedski 2012-04-26 16:17:59