无法从JQuery调用Webmethod

时间:2010-11-08 21:48:56

标签: asp.net jquery webmethod

我无法从jquery调用webmethod。我认为它关于web.config文件。如何为web服务和webmethod设置web.config文件?

1 个答案:

答案 0 :(得分:0)

你有这个代码吗?

        $.ajax({
            url: "Services/MyService.svc/Service",
            type: "GET",
            context: document.body,
            contentType: 'application/json; charset=utf-8',
            datatype: 'json',
            success: function (data) {
                // do something
            }
        });

请注意 contentType 部分至关重要。

如果您这样做,请检查Firebug以查找在“网络”标签中引发的确切错误。 通常,人们根据服务类型有不同的问题 - ASP.NET asmx与WCF svc。有关asmx配置,请参阅How to let an ASMX file output JSON。对于wcf,您需要设置web.config以允许Web脚本,如下所示:

<system.serviceModel>
 <behaviors>
  <endpointBehaviors>
    <behavior name="AspNetAjaxBehavior">
      <enableWebScript/>
    </behavior>
  </endpointBehaviors>
 </behaviors>

然后配置服务以使用该行为:

  <services>
    <service name="MyProject.Services.MyService">
      <endpoint address="/Services/MyService.svc" behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding" contract="MyProject.Services.MyService"/>
    </service>
  </services>
</system.serviceModel>