0

これは Web サービスに含まれています。

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello Worlds";
    }
}

そして、これは私のjQueryです。

    $(document).ready(function () {
        $.support.cors = true;

        $.ajax({
            type: "POST",
            url: "http://localhost:61614/Service1.asmx/HelloWorld",
            data: "{}",
            dataType: "json",
            success: function (msg) {
                alert(0);
                alert(msg);
            }, error: function (a,b,c) { alert(c); }
        });
    });

実行すると、Web サービスのブレークポイントが起動し、"Hello Worlds" が返されます。

ただし、jQuery に戻ると、エラー関数に落ちます。Safari は単に空の文字列を警告し、IE は「トランスポートなし」を警告します。

誰かが私が間違っていることを見ることができますか?

4

1 に答える 1

0

ScriptMethod属性も追加する必要があります。

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string HelloWorld()
{
    return "Hello Worlds";
}

また、ajax 呼び出しで contentType を指定する必要があります。

$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "http://localhost:61614/Service1.asmx/HelloWorld",
            data: "{}",
            dataType: "json",
            ...

また、このトピックに関する優れた記事:ここ.

于 2012-05-04T04:29:28.713 に答える