Jquery 通过Ajax调用Web服务
我哪里做错了?我需要对其“OnClientClick”属性上的按钮进行服务调用,我已经为Ajax调用了xyz()。但它不起作用 这是我的JS: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
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');
}
});