Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 通过Ajax调用Web服务_Jquery_Ajax_Web Services_Rest - Fatal编程技术网

Jquery 通过Ajax调用Web服务

Jquery 通过Ajax调用Web服务,jquery,ajax,web-services,rest,Jquery,Ajax,Web Services,Rest,我哪里做错了?我需要对其“OnClientClick”属性上的按钮进行服务调用,我已经为Ajax调用了xyz()。但它不起作用 这是我的JS: function xyz() { $.ajax({ type: 'POST', url: 'http://localhost:9210/xyzmodule/xyzmethod', data: "{ field1: '" + $("#tx

我哪里做错了?我需要对其“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)
    ...
您是否尝试过:

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');
                }
            });
        }
语法应为:

 $.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();
您也可以这样做:(例如,如果您使用动态变量)

然后:


希望这有帮助

有错误消息吗?您没有在生产服务器上调用外部网站,是吗?是否确实调用了函数
xyz()
?您的
数据
对象不是objectxyz()的有效JSON表示形式。警报“error”弹出一条消息,显示“data null”。我创建的JSON的结构有问题吗?@Andreas-我应该怎么做才能纠正这个问题?@Zathurus Writer-还是一样!JSON.stringify(JSON)在这里有什么用处吗?你甚至可以使用
“field1=“+$(“#txtfield1”).val()+”&field2=“+$(“#txtfield2”).val()
,它可以工作,不需要字符串化东西。。。无论如何,当您尝试我更新的示例时,它是否返回“错误在:未定义的错误:未定义的”?请查看我更新的示例,并让我知道这将输出什么。。。请注意,输出将被发送到浏览器的控制台(我希望您没有使用MSIE来测试,因为我相信没有控制台:D)Zathurus Writer-一些问题已经解决。我将很快发布这个问题的答案。谢谢你的帮助。这非常有用将显示一条提示:“错误在:未定义错误:未定义”。
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');
            }
        });