重複の可能性:
jQuery から Web サービスを呼び出す
2 つの数値を加算したいのですが、操作は WCF で行う必要があり、結果は default.aspx ページに表示されます。
jquery を使用して 2 つのテキスト ボックスの値を WCF サービスに渡すにはどうすればよいですか?
重複の可能性:
jQuery から Web サービスを呼び出す
2 つの数値を加算したいのですが、操作は WCF で行う必要があり、結果は default.aspx ページに表示されます。
jquery を使用して 2 つのテキスト ボックスの値を WCF サービスに渡すにはどうすればよいですか?
新しいサービス コントラクトを定義することから始めることができます。
namespace WebApplication1
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "add?a={a}&b={b}",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
int Add(int a, int b);
}
}
実装:
namespace WebApplication1
{
public class Service1 : IService1
{
public int Add(int a, int b)
{
return a + b;
}
}
}
エンドポイント ( ~/service1.svc
):
<%@ ServiceHost
Language="C#"
Debug="true"
Service="WebApplication1.Service1"
CodeBehind="Service1.svc.cs"
%>
web.config 内で REST を有効にするようにサービスを構成します。
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="rest">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="WebApplication1.Service1">
<endpoint
address=""
contract="WebApplication1.IService1"
binding="webHttpBinding"
behaviorConfiguration="rest"
/>
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
これで、WebForm1.aspx をプロジェクトに追加してサービスを利用できるようになりました。
<%@ Page Language="C#" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
url: '<%= ResolveUrl("~/service1.svc/add") %>',
type: 'GET',
cache: false,
data: { a: 5, b: 7 },
success: function (result) {
alert(result);
}
});
</script>
</body>
</html>