0

我哪里错了?我需要在单击其“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)
    ...
4

2 回答 2

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');
                }
            });
        }
于 2012-09-17T11:51:24.020 回答
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');
            }
        });

希望有帮助

于 2012-09-17T13:18:35.003 回答