0

jQuery を使用して ajax を実装しようとしています。ボタン クリックで ajax.so を使用するのは初めてです。現在の日時を表示する必要があります。このために、私は以下のコードを書きます

//==============aspx ページ===============

<script type="text/javascript">

    $(document).ready(function (){
        var Button1 = $("#Button1");
        var Label1 = $("#Label1");
        Button1.click(function (){
          $.ajax({
                type: "POST",
                url: "/myownajax14/WebService/WebService1.asmx/GetDateTime",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    $("#Label1").text(msg.d);
                    //alert('hi');
                    },
                error:alert('error');     
            });     

        });
    });

//================asmx.cs ページ===========

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
    [WebMethod]
    public string GetDateTime()
    {
        return DateTime.Now.ToString();
    }
}

私の問題は、答えが得られないことです..そして、エラーが表示されません.このコードに間違いがありますか?助けてください..

4

3 に答える 3

0

ブラウザを使用して ASMX に直接アクセスしてみましたか? このようにして、ASMX が生成している応答の種類を簡単に確認できます...

于 2013-02-18T07:09:10.647 に答える
0

contentType: "アプリケーション/json;" クライアントはサーバーがjson型のデータを応答する必要があることを意味します.しかし、サーバーは代わりに文字列型のデータを応答します.

「成功」ブロックでは、「msg」は「2010-10-10」のようにする必要があるため、msg.d でエラーが発生します。

文字列型データの場合は次を試すか、{"y":2010,"m":10,"d":10} などのサーバー コードで json 型データを応答します。

contentType: "application/text; charset=utf-8",
success: function (date) {
    $("#Label1").text(date);
}
于 2013-02-18T05:22:27.293 に答える
0

私も同様の問題を抱えていました。これは簡単です:

type="button"属性を指定する必要があります。

于 2013-02-18T05:14:02.697 に答える