我正在尝试使用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;
}
}
答案 0 :(得分:0)
你应该看看documentation,它说你的电话可能是这样的:
$.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;
}
现在,如果这不起作用,请看一下这个answer,这是完成你想要的不同方式
答案 1 :(得分:0)
您可能会收到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 Article - jQuery Ajax JSON Example in Asp.net C#