WCF Ajax、Jquery跨域訪問

來源:互聯網
上載者:User

服務端:

[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)][JavascriptCallbackBehavior(UrlParameterName = "jsoncallback")]public class Service2{// 添加 [WebGet] 屬性以使用 HTTP GET[OperationContract]
    //[WebGet]public void DoWork(){// 在此處添加操作實現return;}    [OperationContract]    //[WebGet]    [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]    public string GetName(string name)    {        // 在此處添加操作實現        return "hello:" + name;    }

需要注意的是這兩句:

[JavascriptCallbackBehavior(UrlParameterName = "jsoncallback")]
[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]

服務端設定檔

進行相關配置:
      <webHttpBinding>        <binding name="webBinding" crossDomainScriptAccessEnabled="true"/>       </webHttpBinding>  
      <service name="Service" >  <endpoint address="" bindingConfiguration="webBinding" behaviorConfiguration="Service2AspNetAjaxBehavior" binding="webHttpBinding" contract="Service2"/>      </service>
    

WebSite配置:

AJAX調用WCF:

首先引用發布的服務地址擷取JS

http://192.168.1.159:8080/Service2.svc/js

   //引用js 

  

    <asp:ScriptManager ID="scriptManager" runat="server">        <Scripts>            <asp:ScriptReference Path="~/JS/AjaxServer.js" />        </Scripts>    </asp:ScriptManager>
    <script type="text/javascript">                function sayhello() {            var name = $get("txtname").value;            Service2.GetName(name, onSuccess, onFailed);        }        function onSuccess(res) {            alert(res);        }        function onFailed(res) {            alert(res._message);        }    </script>
        <input id="txtname" name ="txtname" type="text" />        <input id="btnInput" name="btnInput" type="button" value="input" onclick="sayhello()" />

Jquery調用WCF:

   <script type="text/javascript" src="jquery-1.7.2.js"></script>    <script type="text/javascript">        function Jquery() {         $.ajax({            type: "get",            dataType: "json",            url: 'http://192.168.1.159:8080/Service.svc/GetName?jsoncallback=?',            data: { name: $get("txtname").value },            success: function (returndata) {                alert(returndata);            }        });    }     </script>

  <input id="txtname" name ="txtname" type="text" />
      
  <input id="btnInput" name="btnInput" type="button" value="input" onclick="Jquery()" />

附件下載
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.