1、//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
这个错误已经明显提示了,犯错几率不大。
2、在web.config的<system.web></system.web>中间加入如下配置节内容
<webServices>
<protocols>
<add
name="HttpSoap"/>
<add
name="HttpPost"/>
<add
name="HttpGet"/>
<add
name="Documentation"/>
</protocols>
</webServices>
我试了,第二种方法仍无效,于是继续探讨,找到一篇JQuery Ajax调用.net
WebService的例子,于是下载试了试,人家的代码管用,对比了一下,一样的代码为何我的无效?想法排查那的问题:
把他的web.config删掉后,不管用了,显然问题仍然在web.config中,找到认为可能影响的代码,一句一句排除,最终找到:
在<system.web>下的<httpHandlers>中有句:
<add verb="*" path="*.asmx"
validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
有此句则有效,去掉则无效,极度兴奋,把这句粘到我的web.confg中,问题解决。只是用了两个小时时间!