有两种方法可实现AJAX调用本地WCF服务,以下使用ScriptManager控件实现.

通过微软的ScriptManager控件,具体流程如下:

服务接口 IService1.cs:

namespace wcftest
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        string DoWork(string user);
    }
}

服务实现 Service1.svc:

namespace wcftest
{
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class Service1 : IService1
    {
        string IService1.DoWork(string user)
        {
            return "hello"+user;
        }
    }
}

Web.config设置:

<system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="test">
          <enableWebScript/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <services>
      <service name="wcftest.Service1">
        <endpoint behaviorConfiguration="test" address="" binding="webHttpBinding" contract="wcftest.IService1">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
      </service>
    </services>
  </system.serviceModel>

前台调用代码:

<body>
    <form >tempuri.org.IService1();
        wcfProxy.DoWork(user, OnSucceededCallback, OnFailedCallback);
    }

    function OnSucceededCallback(result, userContext, methodName)
    {
        if (methodName == "DoWork")
        {
            alert(result);
        }
    }

    function OnFailedCallback(error, userContext, methodName)
    {
        alert("异常信息:" + error.get_message());
    }
</script>

相关文章:

  • 2021-08-14
  • 2021-11-13
猜你喜欢
  • 2022-01-31
  • 2022-12-23
  • 2021-07-15
  • 2021-09-29
  • 2021-12-16
  • 2022-12-23
相关资源
相似解决方案