通过Ajax调用Web服务

时间:2012-09-17 11:46:48

标签: jquery ajax web-services rest

我哪里出错了?我需要点击按钮点击“OnClientClick”属性,我为Ajax调用了xyz()。但是没有用。

这是我的JS:

function xyz() {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9210/xyzmodule/xyzmethod',
                data: "{ field1: '" + $("#txtfield1").val() + "' field2: '" + $("#txtfield2").val() + "' field3: '" + $("#dattimefield3").val() + "'}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                error: function () {
                    alert('Data null');
                },
                success: function () {
                    alert('Success');
                }
            });
        }

这是我的服务没有被Ajax调用调用 - 应该调用Web服务。但事实并非如此。

[HttpPost()]
    public String xyzmethod(string json)
    ...

2 个答案:

答案 0 :(得分:2)

你试过了吗?

function xyz() {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9210/xyzmodule/xyzmethod',
                data: {field1: $("#txtfield1").val(), field2: $("#txtfield2").val(), field3: $("#dattimefield3").val()},
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                error: function (jqXHR, textStatus, errorThrown) {
                    console.log(textStatus + ' - ' + errorThrown);
                    for (var i in jqXHR) {
                        console.log(i + ' = ' + jqXHR[i]);
                    }
                },
                success: function () {
                    alert('Success');
                }
            });
        }

答案 1 :(得分:0)

语法应为:

 $.ajax({
            type: 'POST',
            url: 'http://localhost:9210/xyzmodule/xyzmethod',
            data: { field1: $("#txtfield1").val(), field2: $("#txtfield2").val(), field3: $("#dattimefield3").val() },               
            error: function () {
                alert('Data null');
            },
            success: function () {
                alert('Success');
            }
        });

或者你可以在调用之前构建数据对象以便更简单地阅读

var pars = {};
pars["textField1"] = $('#txtField1').val();

您也可以:(例如,如果您使用动态变量)

var myfield = "myfield2";
pars[myfield] = $('#'+myfield).val();

然后:

 $.ajax({
            type: 'POST',
            url: 'http://localhost:9210/xyzmodule/xyzmethod',
            data: pars,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            error: function () {
                alert('Data null');
            },
            success: function () {
                alert('Success');
            }
        });

希望有所帮助