简体   繁体   中英

how to call web service from javascript (ajax)

i have 1 project webservice and 1 project web asp.net i want to insert data by json(ajax) i tested file service by code behind and it good, have error with code js file WebService1:

public bool HelloWorld(student obj) {
    SqlConnection cnn = new SqlConnection("Data Source=PHAMHOP-LAPTOP\\SQLEXPRESS;Initial Catalog=qlsv;Integrated Security=True");
    cnn.Open();
    SqlCommand cmd = new SqlCommand("insert into sinhvien(name,age) values(@name,@age)", cnn);
    cmd.Parameters.AddWithValue("name", obj.name);
    cmd.Parameters.AddWithValue("age", obj.age);
    int row = cmd.ExecuteNonQuery();
    if (row == 1){
        return true;
    } else {
        return false;
    }
}

file aspx:

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
    function add() {
        $.ajax({
            type: "POST",
            url: "http://localhost:51097/Service1.asmx/HelloWorld",
            data: "{'id':'1' ,'name': 'Amit', 'age': '97'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                alert("ok");
            }
        });
    }
</script>
<body>
    <input type='Button' value='gui' OnClick='add()'/>
</body>

It does not work.

Since the returned data is not JSON contentType: "application/json; charset=utf-8", dataType: "json", is not needed and the data option does not need to be a string. Pass it as an object.

Try this

function add() {
    $.ajax({
        type: "POST",
        url: "http://localhost:51097/Service1.asmx/HelloWorld",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: {
            id: 1,
            name: 'Amit',
            age: 97
        },
        success: function (msg) {
            alert("ok");
        }
    });
}

Alternatively, you could try passing the JSON as a string parameter instead of as a student and deserialising it yourself using Newtonsoft or System.Web.Script.Serialization.JavaScriptSerializer.

bool HelloWorld(string obj)

instead of

bool HelloWorld(student obj)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM