最近想学着用用WCF,不过开发上可能不止.net本身要调用到,还有asp,php,js之类的也有可能需要直接调用,所以找了些资料,看看需要怎么设置。下面以jQuery的AJAX调用为例,并说说需要注意的
<script type=”text/javascript”> $(“#execute”).bind(“click”, function() { $.ajax({ url: “http://localhost:XXXX/Calculator.svc/Subtract”, data: “x=1&y=2″, //data:’{“x”:10,”y”:200}’, //FOR type:”post” type: “get”, dataType:”json”, contentType: “application/json”, success: function(result) { alert(result.d); } }); }); </script>
这里可以没有dataType,但不能没有contentType,因为不加contentType,会报错,而还要加dataType:”json”的原因是使返回的结果为json格式,不加的话是字符串。
使用get方式,data的数据格式和平时一样;而post方式,data默认是JSON格式。
(PS:{“x”:10,”y”:200},x与y引号是必须的,这点和调用web服务有点不同)
WCF设置需要注意的地方:
一:在.svc文件加上Factory=”System.ServiceModel.Activation.WebScriptServiceHostFactory” 属性,不加会报错,至于为什么,这句是什么意思,目前我不懂,呵呵,接下来继续学。
二:web.config的设置,
<endpoint address=”" binding=”webHttpBinding” contract=”WcfService.ICalculator”/>
注意binding的值,是”webHttpBinding”,我添加服务时,它是”wsHttpBinding”