[英]Web service call with ajax in asp.net
我正在尝试通过jquery ajax使用Web服务。 调用了webservice方法并传递了参数,我想知道为什么ajax无法执行成功功能
这是我的ajax电话
<script type="text/javascript">
function btn_add() {
var a = $("#tb_a").val();
var b = $("#tb_b").val();
var c = $("#tb_c").val();
var para = "a=" + a + "&b=" + b + "&c=" + c;
$.ajax({
type: "POST",
url: "mywebservice.asmx/add",
data: para,
dataType: "text",
success: function (res) {
alert("success");
console.log(res);
}
});
}
</script>
编辑
这是我的网络服务代码
[System.Web.Script.Services.ScriptService]
public class mywebservice : System.Web.Services.WebService
{
[WebMethod, ScriptMethod]
public int add( int a, int b, int c)
{
return a + b + c;
}
}
您应该看一下文档 ,它说您的呼叫可能像这样:
$.ajax({
type: "POST",
url: "mywebservice.asmx/add",
data: { a : $("#tb_a").val(),
b : $("#tb_b").val(),
c : $("#tb_c").val() },
success: function (res) {
alert("success");
console.log(res);
}
});
如果在您的服务器中有以下内容:
public string myFunction(string a, string b, string c)
{
return a + b + c;
}
现在,如果那行不通,请看一下此答案 ,这是完成所需内容的另一种方法
您可能会收到404错误,请检查您的控制台,因为您的add
方法签名与您在ajax调用中发送的内容不匹配。 你可以这样尝试
var aData=[];
aData[0] = $("#tb_a").val();
aData[1] = $("#tb_b").val();
aData[2] = $("#tb_c").val();
var jsonData = JSON.stringify({ aData:aData});
$.ajax({
type: "POST",
url: "mywebservice.asmx/add",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json", // dataType is json format
success: OnSuccess,
error: OnErrorCall
});
function OnSuccess(response){
console.log(response.d);
}
function OnErrorCall(response){
console.log(response.d);
}
[WebMethod, ScriptMethod]
public int add(list<string> aData)
{
int cal=Convert.ToInt32(aData[0])+Convert.ToInt32(aData[1])+Convert.ToInt32(aData[2]);
return cal;
}
有关更多详细信息,请参阅Blog文章-Asp.net C#中的jQuery Ajax JSON示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.