2010-11-08 74 views
0

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

+0

这样做只是抽查了答案,我没有看到任何值得评分的答案。也许只是我,但也许他可以提供他在其中一些问题上所做的。 – 2010-11-08 21:56:02

+0

好吧,请下来:)我确实检查了我的问题,并将一些答案标记为“答案”。 – pegasus 2010-11-08 22:02:32

回答

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> 
+0

没错!但是我想让visual studio自动编写这些代码。 – pegasus 2010-11-08 22:49:40

+1

不可能 - visual studio在jQuery的帮助下没有任何自动化。您可以使用ASP.NET AJAX和servicereference - 然后它将自动生成,包括方法名称,参数等。请参阅http://msdn.microsoft.com/en-us/library/bb514961.aspx#sectionToggle1 – Artemiy 2010-11-09 13:55:04