在coldfusion页面中有两个jQuery Ajax调用

时间:2013-11-05 17:19:27

标签: ajax jquery coldfusion

我是jQuery API文档的新手,因此想知道以下场景是否可行:

到目前为止,我在一个coldfusion页面中只遇到过一个Ajax调用。

情景:

我正在向cfc发送一个$ .ajax调用来调用CFC中的方法并以JSON格式返回数据。基本上我在这里调用的方法是将数据添加到数据库中。

我想编写另一个$ .ajax调用来调用CFC中的方法,该方法将读取上述ajax调用保存的数据并在Web浏览器上以JSON格式显示。

所以,我的问题是,只要Iam以顺序方式执行此操作,我是否可以在单个coldfusion页面中进行多个ajax调用?

顺序必须是关键,我是对的吗?

请澄清!!

由于

1 个答案:

答案 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>