js跨域调用wcf服务

本文介绍如何使用JavaScript实现跨域调用WCF服务的方法。通过在Service.cs中添加必要的属性,并在配置文件中进行相应设置,使得能够通过JSONP的方式实现跨域请求。此外,还提供了一个简单的示例页面,演示了如何发起跨域请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js跨域调用wcf服务:

1.在Service.cs里添加:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[JavascriptCallbackBehavior(UrlParameterName="jsoncallback")]

public class Service

{

    [OperationContract]
    [WebGet(RequestFormat = WebMessageFormat.Json)]

  public string getChapter(string symbol,string chapter)

  {

       symbol="A";

       chapter="BBBB";

       string result=symbol+chapter;

  }

}

2.在配置文件里:

  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webBehavior">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="navMetadataBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" >
      <baseAddressPrefixFilters>
        <add prefix="string"/>
      </baseAddressPrefixFilters>
    </serviceHostingEnvironment>
    <services>
      <service name="ReaderService" behaviorConfiguration="navMetadataBehavior">
        <endpoint address="" behaviorConfiguration="webBehavior"
          binding="webHttpBinding" contract="ReaderService" bindingConfiguration="webBinding" />
        <!--<endpoint address="" binding="basicHttpBinding" contract="ReaderService"  />-->
      </service>
    </services>
    <bindings>
      <webHttpBinding>
        <binding name="webBinding" crossDomainScriptAccessEnabled="true"></binding> //跨域
      </webHttpBinding>
    </bindings>
  </system.serviceModel>

3.在页面:

在文本框输入:两个文本框分别输入:A 和BBBB;

 <script type="text/javascript">
        function GetServerHelloWorldByJsop() {
            var symbol = document.getElementById("symbol").value;
            var chapter = document.getElementById("chapter").value;

           $.getJSON("http://192.168.80.20:90/ReaderService.svc/getChapter?jsoncallback=?",
            { symbol: symbol, chapter: chapter },
             function (data) {
                 alert(data);
             });
        }
    </script>

<body>
   <h2>修改订单</h2>
   Code: <input type="text" id="symbol" />
    Chapter:   <input id="chapter" type="text" />
  <input type="button" id="btnExcute" name="btnExcute" value="查询"  onclick="GetServerHelloWorldByJsop();"/>
</body>

转载于:https://www.cnblogs.com/xuebingz/archive/2011/12/15/2289082.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值