简体   繁体   English

在 Javascript/Jquery Ajax 调用中使用 WCF 服务

[英]Consuming WCF service in Javascript/Jquery Ajax call

I have a WCF service hosted/published on the below path -我在以下路径上托管/发布了 WCF 服务 -

newslettersubscriptiondev.mercola.com/NewsletterSubscriptionService.svc newslettersubscriptiondev.mercola.com/NewsletterSubscriptionService.svc

Want to call above WCF service in Jquery Ajax Call想在Jquery Ajax Call调用以上WCF service

Code written in jQuery -用 jQuery 编写的代码 -

<script type="text/javascript" src="JS/jquery-2.1.4.js"></script>
<script type="text/javascript" src="JS/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
    function cityClickJQuery() {
        $.ajax({
            type: "POST",
            url: "http://newslettersubscriptiondev.mercola.com/NewsletterSubscriptionService.svc/CheckEmailaddressValidateOnly",
            data: { EmaillAddress: 'pranav.bilurkar28@gmail.com', Source: 'ArticleBody' },
            processData: false,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                alert('success');
                alert(data.d);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                console.log(JSON.stringify(jqXHR));
                console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
                alert(jqXHR);
            }
        });
    }

</script>

In the above JS code CheckEmailaddressValidateOnly is the C# method defined in Service which requires 2 parameters.上面JS代码中CheckEmailaddressValidateOnly是Service中定义的C#方法,需要2个参数。

Design code -设计代码 -

    <body>
        <form id="form1" runat="server">
        <div>
        <asp:Button ID="btn1" runat="server" OnClientClick="cityClickJQuery();" Text="click" />
        </div>
        </form> 
  </body>

Above JS code is not working.上面的 JS 代码不起作用。

Please Help.请帮忙。

First you should verify that you include attribute首先,您应该验证您是否包含属性

[WebInvoke (ResponseFormat = WebMessageFormat.Json)]

Second you should use其次你应该使用

data:JSON.stringify({EmaillAddress: 'pranav.bilurkar28@gmail.com', Source: 'ArticleBody'}), 

The JSON.stringify is defined in http://www.json.org/js.html . JSON.stringify 在http://www.json.org/js.html 中定义。

One more update After the successful return of data you will see that the data returned back should be accessed not with data.d.EmailAddress , but with data.EmailAddress instead.再次更新 成功返回数据后,您将看到返回的数据不应使用data.d.EmailAddress访问,而是使用data.EmailAddress访问。 ASMX web-service place the data in the property d, but not WCF service. ASMX Web 服务将数据放在属性 d 中,而不是 WCF 服务中。

更改data: { EmaillAddress: 'pranav.bilurkar28@gmail.com', Source: 'ArticleBody' }, To

data: JSON.stringify({ EmaillAddress: 'pranav.bilurkar28@gmail.com', Source: 'ArticleBody' }),

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM