0

ASP.NETWebアプリケーションに取り組んでいます。

Jqueryajaxを使用してWebサービスを呼び出したい。Webサービスは文字列を返します。

これは私のWebサービスです。

[WebService(Namespace = "http://localhost/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class MyWebService : System.Web.Services.WebService
{

    [WebMethod]
    public string GetStringForPerson(string Personname, int StartYear, int EndYear)
    {
        string S = "Hello" + Personname + " You where born between " + StartYear + " and " + EndYear;
        return S;
    }
}

そしてそれを呼び出すAjax関数:

function GetStringForPerson(Name) {
        $.ajax({
            type: "POST",
            url: "Service/MyWebService.asmx/GetStringForPerson",
            dataType: "json",
            data: "{'Personname':Name, 'StartYear':'2001', 'EndYear':'2005'}",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                alert(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(textStatus);
                alert(XMLHttpRequest.status);
                alert(errorThrown);
            }
        });
    }

しかし、それを呼び出すと、「内部サーバーエラー」というエラー500が発生します。

Webメソッドにブレークポイントを設定しましたが、到達していません。

何が問題なのでしょう?

ありがとう

4

1 に答える 1

1

私が見ているバグの1つはName変数であり、文字列として送信されず、変数としても送信されません。したがって、この行を次のように変更します。

data: "{'Personname':'" + Name + "', 'StartYear':'2001', 'EndYear':'2005'}",
于 2012-06-18T12:35:16.443 に答える