![](/img/trans.png)
[英]JQuery.ajax(): Issue with parameter data when consuming a WCF Service
[英]Consuming WCF service in Javascript/Jquery Ajax call
我在以下路徑上托管/發布了 WCF 服務 -
newslettersubscriptiondev.mercola.com/NewsletterSubscriptionService.svc
想在Jquery Ajax Call
調用以上WCF service
用 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>
上面JS代碼中CheckEmailaddressValidateOnly
是Service中定義的C#方法,需要2個參數。
設計代碼 -
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btn1" runat="server" OnClientClick="cityClickJQuery();" Text="click" />
</div>
</form>
</body>
上面的 JS 代碼不起作用。
請幫忙。
首先,您應該驗證您是否包含屬性
[WebInvoke (ResponseFormat = WebMessageFormat.Json)]
其次你應該使用
data:JSON.stringify({EmaillAddress: 'pranav.bilurkar28@gmail.com', Source: 'ArticleBody'}),
JSON.stringify 在http://www.json.org/js.html 中定義。
再次更新 成功返回數據后,您將看到返回的數據不應使用data.d.EmailAddress訪問,而是使用data.EmailAddress訪問。 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.