我有以下问题,有一个ASP。 NET Web服务项目(* .asmx),具有多个功能,是第二个项目,也是ASP .NET,它应该使用jQuery Ajax(无服务引用)调用服务。 Web服务项目:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class MathService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod]
public int Add(int x, int y)
{
return x + y;
}
}
和
<script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
url: "http://localhost:47204/Services/MathService.asmx/Add",
data: "{'x': '5', 'y': '10'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
$("#divMathService").text(res.d);
},
error: function () {
alert("ALARM!");
}
});
});
</script>
这 - localhost:47204 - 主机Web服务项目,当我调试项目时。 我特别指出了完整的URL,在客户端项目中使用它。 项目有效,一切都好。 项目客户端如下所示:
<script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
url: "http://localhost:47204/Services/MathService.asmx/Add",
data: "{'x': '5', 'y': '10'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
$("#divMathService").text(res.d);
},
error: function () {
alert("ALARM!");
}
});
});
</script>
但是这个项目没有显示任何结果,只有警报,我不明白为什么。也许远程呼叫权限有问题?
我无法附加项目,但如果有人想看项目,可以发送电子邮件。
答案 0 :(得分:0)
首先尝试将数据格式化为有效的json:
'{"x": 5, "y": 10}'
另外,您的方法需要知道将响应发送为json:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public int Add(int x, int y)