1

我是 jQuery API 文档的新手,因此想知道以下情况是否可能:

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

设想:

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

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

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

顺序必须是关键,对吗?

请说清楚 !!

谢谢

4

1 回答 1

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>    
于 2013-11-06T20:59:26.697 回答