C# .JQuery.ajax如何使用返回值调用WCF方法?
我已经能够使用.ajax调用WCF方法。如何调用返回值的方法?我需要调用这个方法来查看数据是否准备好,如果没有,请等待一秒钟。WCF方法是:C# .JQuery.ajax如何使用返回值调用WCF方法?,c#,javascript,jquery,ajax,wcf,C#,Javascript,Jquery,Ajax,Wcf,我已经能够使用.ajax调用WCF方法。如何调用返回值的方法?我需要调用这个方法来查看数据是否准备好,如果没有,请等待一秒钟。WCF方法是: [OperationContract] [WebGet] public bool IsDataReady(string requestGUID) { if (Global.publicDataDictionary.Keys.Contains(requestGUID))
[OperationContract]
[WebGet]
public bool IsDataReady(string requestGUID)
{
if (Global.publicDataDictionary.Keys.Contains(requestGUID))
return true;
else return false;
}
到目前为止,我的JavaScript是:
$(document).ready(function() {
var input = {requestGUID:"<%=guid %>"};
console.log(input);
$.ajax({
url: "http://www.blah.com/services/TestsService.svc/IsDataReady",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
dataType: "json",
success: function(data) {
}
});
返回值将包含在ajax调用中传递给成功回调设置的数据参数中 您需要在这里检查该值,如果为false,则设置一个超时,该超时将在到期时再次尝试ajax调用 最好将Ajax调用封装在一个函数中,当超时过期时,可以以递归方式调用该函数。e、 g
function CallIsDataReady(input){
$.ajax({
url: "http://www.blah.com/services/TestsService.svc/IsDataReady",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
dataType: "json",
success: function(data) {
if (!data){
setTimeout(function(){CallIsDataReady(input);}, 1000);
}
else{
//Continue as data is ready
}
}
});
}
$(document).ready(function() {
var input = {requestGUID:"<%=guid %>"};
console.log(input);
CallIsDataReady(input);
});
函数CallIsDataReady(输入){
$.ajax({
url:“http://www.blah.com/services/TestsService.svc/IsDataReady",
键入:“获取”,
contentType:“应用程序/json;字符集=utf-8”,
数据:输入,
数据类型:“json”,
成功:功能(数据){
如果(!数据){
setTimeout(函数(){CallIsDataReady(输入);},1000);
}
否则{
//数据准备就绪后继续
}
}
});
}
$(文档).ready(函数(){
var输入={requestGUID::};
控制台日志(输入);
CallIsDataReady(输入);
});
当您在此页面上查看源代码时:
var input = {requestGUID:"<%=guid %>"};
阅读RESTful web服务:
你成功了吗??我无法让它工作。我想这是我的第二个.ajax调用,重复相同名称的参数。我将更新我的问题我将它分解成一个函数来进行第二次AJAX调用,并进行了更改,但仍然不起作用。我来编辑,知道为什么吗?你调试过吗?代码不是本地的,而是在服务器上,所以我无法调试它。但我确实使用了IE开发工具并在callUpdateGrid上设置了断点,但我无法命中它。我的日志显示,第二个函数和第二个AJAX调用从未获得requestGUID值。我不能用相同的输入值调用第二个函数吗?我看到我的IsDataReady返回看起来是XML的内容,即使该服务是JSON服务,并且为JSON模式设置了.ajax调用。microsoft.com/2003/10/Serialization/“>true
function CallIsDataReady(input){
$.ajax({
url: "http://www.blah.com/services/TestsService.svc/IsDataReady",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
dataType: "json",
success: function(data) {
if (!data){
setTimeout(function(){CallIsDataReady(input);}, 1000);
}
else{
//Continue as data is ready
}
}
});
}
$(document).ready(function() {
var input = {requestGUID:"<%=guid %>"};
console.log(input);
CallIsDataReady(input);
});
var input = {requestGUID:"<%=guid %>"};
[WebGet(
RequestFormat=WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json]