0

我创建了一个简单的 WebMethod 来获取远程服务器上文件的大小。JavaScript 消息总是显示“失败”。我错过了什么?

测试.ASPX.CS

[WebMethod]
public static string GetRecordingFileSize(string url)
{
    try
    {
        WebRequest wr = (HttpWebRequest)WebRequest.Create(url);
        var response = wr.GetResponse();
        return response.ContentLength.ToString();
    }
    catch (WebException webException)
    {
        return webException.ToString();
    }
}

测试.ASPX

$.ajax({
    type: "GET",
    url: "TEST.aspx/GetRecordingFileSize",
    data: "{ url : '" + $('#txtSoundFile').val() + "' }",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        alert("okay");
        $("#soundFile").attr("src", "Images/check.png");
    },
    error: function (xhr, status) {
        alert("not okay");
        $("#soundFile").attr("src", "Images/error.png");
    }
});
4

1 回答 1

0

您可能需要使用POST而不是GET. 这篇文章有很好的例子。

$.ajax({
    type: "POST",
    url: "TEST.aspx/GetRecordingFileSize",
    data: "{ url : '" + $('#txtSoundFile').val() + "' }",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        alert("okay");
        $("#soundFile").attr("src", "Images/check.png");
    },
    error: function (xhr, status) {
        alert("not okay");
        $("#soundFile").attr("src", "Images/error.png");
    }
});

 如果你需要使用 GET 那么你必须有 [ScriptMethod(UseHttpGet=true)]

 [WebMethod]
 [ScriptMethod(UseHttpGet=true)]
 public static string GetRecordingFileSize(string url)
 {
       //your code
 }  
于 2013-08-05T10:26:41.770 回答