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 に答える