我无法让这个工作!每当我点击按钮时都没有任何反应。已经用.text('hello world')替换了.load方法,它起作用,所以看起来我的问题在方法的url中。到处寻找答案,但我认为我必须忽略一些非常明显的东西,因为没有看到任何地方发布的相同的东西。请帮助它让我疯狂!!!
客户端:
<script src="Scripts/jQuery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
// Cannot get this to work
$(function () {
$('#buttonSays').click(function () {
$('div').load('AjaxServices.asmx/HelloWorld');
});
});
</script>
</head>
<body>
<h1>Hello World from Web Service</h1>
<button type="button" id="buttonSays">Get Info</button>
<p>The site says...</p>
<div id="divSays1"></div>
<div id="divSays2"></div>
<div id="divSays3"></div>
</body>
服务器端:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AjaxServices : System.Web.Services.WebService
{
private static int count = 0;
[WebMethod]
public string HelloWorld()
{
count++;
return "Hello World #" + count.ToString();
}
答案 0 :(得分:2)
虽然这可能不是造成问题的原因,但是阻止.Net Web服务使用jQuery的常见问题是默认情况下不允许GET
和POST
请求。确保使用以下代码在web.config中启用了适当的方法:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
我相信你也可以指定WebMethod级别允许哪些方法:
[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
count++;
return "Hello World #" + count.ToString();
}