我已经为我的asp.net Web应用程序添加了一个服务引用(最初它只是一个直接的html网站,我们将其转换为Web应用程序)
我们需要通过jquery / ajax访问WCF服务,而不是从任何.cs文件中访问。到目前为止,我们无法通过任何方式获得jquery,甚至在它被转换为Web应用程序之前(转换为希望更容易添加服务引用并调用它)
我在桌面上运行的单独解决方案中运行WCF服务,并且Web应用程序单独打开。我的服务名为SchoolService,位于Service References文件夹中。
如何在jquery中调用该服务引用?
这是我们从一个也不起作用的演示中使用的:
<script type="text/javascript">
$(document).ready(function () {
var schoolsCache = {}, lendersCache = {}, schoolsXhr, lendersXhr;
$('#Schools').autocomplete({
source: function (request, response) {
var term = request.term;
if (term in schoolsCache) {
response(schoolsCache[term]);
return;
}
if (schoolsXhr != null) {
schoolsXhr.abort();
}
schoolsXhr = $.getJSON('SchoolService.svc/GetSchools', request, function (data, status, xhr) {
schoolsCache[term] = data.d;
if (xhr == schoolsXhr) {
response(data.d);
schoolsXhr = null;
}
});
}
});
});
</script>
我也试过这条不起作用的行:
schoolsXhr = $.getJSON('http://localhost:8000/SchoolService/GetSchools', request, function (data, status, xhr) {
以下是我的WCF sdervice中的界面:
using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
using MyApp.DomainModel;
namespace MyAppService
{
[ServiceContract]
public interface ISchoolService
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
IList<School> GetSchools(string term);
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
School GetSchool(string schoolName);
}
}
使这项工作需要哪些必要的具体步骤?目标是让用户输入文本框,使用jquery autocomplete,它使用ajax调用服务来提取包含键入文本的数据......这肯定是在以前完成的吗?
CD
答案 0 :(得分:1)
您可以查看this CodeProject article。作者正在讨论这个配置文件WCF服务和JQuery客户端。
答案 1 :(得分:0)
没有人能够回答这个问题,但我们发现了这一点。它与jsonp或跨域无关。
来自javascript的调用会对url进行$ .getJSON调用。 url是项目中.svc文件的相对URL。 .svc文件只不过是一个passthru,它构造与引用服务的连接并进行调用,然后返回到ajax调用。