0

この Java スクリプトを作成して、json オブジェクトを c# Web サービスに送信します。しかし、それは機能しません..なぜですか?これは私のjavascriptです..

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery- 1.5.1.js"></script>

<script type="text/javascript">
     function BindJson() {

 document.getElementById("demo").innerHTML=Date();
        $.ajax({
            type: "POST",
            url: "Service1.asmx/SerializeJson",
            data: JSON.stringify({ person:{ firstName: "Denny" }}),

            contentType: "application/json; charset=utf-8",
            dataType: "json",

            success: function (data2) {
              alert(data2.d);
            },
            error: function (request, status, errorThrown) {
                alert(status);
            }
        }); 
   } 
</script>

そして、これは私のサーバークラスです..

 [System.Web.Script.Services.ScriptService]
 public class Service1 : System.Web.Services.WebService
 {
    [WebMethod]
    public string SerializeJson(Person person)
    {
        return "Success";
    }
    public class Person
    {
        public string firstName { get; set; }   
    }   
 }
4

2 に答える 2

1

JSON のコンテンツ タイプを指定すると、jQuery は JSON.stringify を使用して変換するため、JSON.stringify を使用しないでください。

        data: JSON.stringify({ person:{ firstName: "Denny" }}),

        contentType: "application/json; charset=utf-8",
        dataType: "json",

に変更します

        data: { person:{ firstName: "Denny" }},

        contentType: "application/json; charset=utf-8",
        dataType: "json",

また、必要でない限り、オブジェクトのメンバーとして person を送信する必要はありません。

        data: { firstName: "Denny"},

        contentType: "application/json; charset=utf-8",
        dataType: "json",
于 2013-08-04T10:07:35.733 に答える
0

data.ajax名前と値のペアの文字列、またはオブジェクトを期待するためのオプション

data: { "myjson": JSON.stringify({ person:{ firstName: "Denny" }}) },
//OR
data: "myjson="+JSON.stringify({ person:{ firstName: "Denny" }}),
//Or just send the data values and retrieve in the way you get GET or POST variables in C#
data: { person:{ firstName: "Denny" }},
于 2013-08-04T10:05:20.300 に答える