我正在尝试使用 Ajax 调用 CFC 组件。但我需要将 CFC 返回的值传递给我的 javascript 例程。当我在警报中显示 msg
时,done
函数会创建正确的消息。但 ret 变量永远不会填充该值。我需要返回的值来改变 javascript 数据流。
我做错了什么?
var ret = $.ajax({
type: "post",
url: "cfc/CFCSemae.cfc",
data: {
method: "verificaCadastro",
returnformat: "plain",
queryformat: "column",
nro_cadastro: num_cad
},
dataType: "html",
}).done(function(msg){ return msg; });
alert(ret);
最佳答案
下面的代码应该可以为您完成此操作,但是理解,当您执行异步请求时,只有在执行回调时您才会获得结果。您的代码将简单地调用 $.ajax
函数,但它不会等待响应(就像它在不同的线程中一样)。当响应准备好时,将执行回调complete
。如果响应返回成功消息 (HTTP Status 200),则调用 success
回调,否则调用 error
。
//somewhere in your script
var ret = '';
// then at the ajax request
$.ajax({
type: "post",
url: "cfc/CFCSemae.cfc",
data: { method: "verificaCadastro", returnformat: "plain",
queryformat: "column", nro_cadastro: num_cad },
dataType: "json",
contentType: "application/json; charset=utf-8", // make sure your serverside function can return json
success: function(data) {
//your own validation to check whether 'data' is a valid response
ret = data;
},
error: function(xhr, msg) {
// handle error
}
});
请阅读以下有关 ajax 编程的文章。这将使您更好地理解什么是异步编程:http://en.wikipedia.org/wiki/Ajax_(programming )
编辑:更正拼写错误
关于jquery - 从使用 JQuery Ajax 调用的 Coldfusion CFC 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180544/