有谁知道如何使用 Javascript 连接到 WCF Web 服务?
此时我需要的只是实际连接到 Web 服务,并收到连接成功的通知。
有谁知道我该怎么做?
有谁知道如何使用 Javascript 连接到 WCF Web 服务?
此时我需要的只是实际连接到 Web 服务,并收到连接成功的通知。
有谁知道我该怎么做?
鉴于您已正确编写/配置您的/WCF 服务,您应该能够加载以下 url:
http://somedomain.com/somewcfservice.svc/jsdebug
并调用公开的方法。
如果您的 WCF 服务在同一个域中,您可以使用下面的函数来执行调用
function TestingWCFRestWithJson() {
$.ajax({
url: "http://localhost/Service/JSONService.svc/GetDate",
dataType: "json",
type: "GET",
success: function (data, textStatus, jqXHR) {
// perform a success processing
},
error: function (jqXHR, textStatus, errorThrown) {
// show error to the user about the failure to invoke the service
},
complete: function (jqXHR, textStatus) {//any process that needs to be done once the service call is compelte
}
});
}
如果您的 WCF 服务位于调用应用程序域以外的其他域中,则您需要执行 JSONP 调用,如下所示:
function TestingWCFRestWithJsonp() {
$.ajax({
url: "http://domain.com/Service/JSONPService.svc/GetDate",
dataType: "jsonp",
type: "GET",
timeout: 10000,
jsonpCallback: "MyCallback",
success: function (data, textStatus, jqXHR) {
},
error: function (jqXHR, textStatus, errorThrown) {
},
complete: function (jqXHR, textStatus) {
}
});
}
function MyCallback(data) {
alert(data);
}
当使用 JQuery 的 $.ajax 执行 JSONP 调用时,不会触发完整/成功/错误方法,而是会触发如图所示的回调方法,该方法需要由 WCF 服务处理。WCF 框架提供了一个属性“crossDomainScriptAccessEnabled”,用于标识请求是否为 JSONP 调用并将内容写回流以调用带有数据的回调函数。这在绑定元素上可用,如下所示:
<webHttpBinding>
<binding name="defaultRestJsonp" crossDomainScriptAccessEnabled="true">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="64" maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
</webHttpBinding>