我是jQuery API文档的新手,因此想知道以下场景是否可行:
到目前为止,我在一个coldfusion页面中只遇到过一个Ajax调用。
情景:
我正在向cfc发送一个$ .ajax调用来调用CFC中的方法并以JSON格式返回数据。基本上我在这里调用的方法是将数据添加到数据库中。
我想编写另一个$ .ajax调用来调用CFC中的方法,该方法将读取上述ajax调用保存的数据并在Web浏览器上以JSON格式显示。
所以,我的问题是,只要Iam以顺序方式执行此操作,我是否可以在单个coldfusion页面中进行多个ajax调用?
顺序必须是关键,我是对的吗?
请澄清!!
由于
答案 0 :(得分:1)
有两种方法可以实现......
一个jQuery AJAX调用有一个回调函数,所以你可以简单地从初始提交中获取一些JSON,并从第二个请求中触发该回调 - 这样你可以确保在你调用之前完成了第一个操作第二个。
var request = {
returnformat : 'json',
queryformat : 'column',
method: 'save_data',
data: /* data to pass to the save action here */
}
$.getJSON("path/to/your/service.cfc", request, function(response) {
var request = {
returnformat : 'json',
queryformat : 'column',
method: 'get_data'
}
$.getJSON("path/to/your/service.cfc", request, function(response) {
/* code to fire on response */
});
});
但是我认为更好的方法是进行单个AJAX调用,并在一个CFC方法中简单地执行提交保存和数据响应。您的CFC可能如下所示:
<cffunction name="save_response" access="remote" output="false">
<cfset response = structNew()>
<cfset response.status = true>
<cftry>
<cfquery datasource="#datasource#">
INSERT...
</cfquery>
<cfquery datasource="#datasource#" name="get_data">
SELECT...
</cfquery>
<cfset response.data = get_data>
<cfcatch type="any">
<cfset response.status = false>
</cfcatch>
</cftry>
<cfreturn response>
</cffunction>