2016-10-19 51 views
0

我的應用程序中的一個頁面使用Application.cfc,它使用JavaScript(DWREngine)調用Ajax.cfc文件中定義的函數來填充在網頁加載時下拉。當我加載該頁面時,出現錯誤,提示「服務器無效響應」,並且下拉列表未填充。使用Ajax調用從另一個CFC訪問函數時出現「服務器無效回覆」

對於Ajax.cfc中的函數,訪問屬性設置爲「remote」。

我不知道爲什麼響應不被ajax文件發回。 讓我知道你是否需要別的東西來回答我的問題。

更新(抱歉遲到): 我加入這段代碼在onRequestStart方法中的Application.cfc:

<cfif ListLast(CGI.CF_TEMPLATE_PATH, ".") is "cfc"> 
    <cfset StructDelete(this,'onRequest')> 
</cfif> 

onRequest方法會導致故障的Ajax在同一/子目錄從另一個CFC調用時。我也需要onRequest和Ajax,所以找到了這個解決方法。

+3

你可以直接在瀏覽器中輸入ajax網址嗎?怎麼了。另外,您是否可以發佈與遠程方法相關的代碼,包括URL格式,函數創建等。 – Leeish

+0

正如@leeish所說 - 嘗試直接繞過Javvascript在瀏覽器中輸入請求。像「ajax.cfc?method = myMethod&argument1 = blah&argument2 = blah」 - 這將允許您調試方法調用。一旦你得到它的排序,插回到你的ajax引擎。 –

+0

@Leeish謝謝你的回覆。我已經更新了我如何處理這個問題的描述。通過瀏覽器以及使用Application.cfm時,Ajax.cfc的方法正常工作。在開始使用Application.cfc後,問題開始了。 遠程方法以查詢輸出的形式返回結果集,該結果集將轉換爲wddx並用於填充下拉列表。 您可以提出任何其他解決方法/替代方法嗎? 我現在沒有連接到我的工作網絡,因此無法提供您所需的信息。 –

回答

0

我加入這段代碼在onRequestStart方法中的Application.cfc:已知

<cfif ListLast(CGI.CF_TEMPLATE_PATH, ".") is "cfc"> 
    <cfset StructDelete(this,'onRequest')> 
</cfif> 

onRequest方法引起的故障的Ajax從同一/子目錄另一個CFC調用時。我也需要onRequest和Ajax,所以找到了這個解決方法。

+1

作爲Application.cfc的一部分,有一個可選的'onCFCRequest'方法。也許你可以使用該方法而不是檢查文件擴展名。對我來說似乎更清潔。 [該文檔在這裏](http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSe821657cd7d6f83f6daaa733122cf6931bb-8000.html) –

+1

不清楚他使用的CF版本... onCFCRequest是相當新的(CF11 ?)] –

+0

謝謝@ Miguel-F的回覆。對不起,我過去12天沒有回覆過你的假期。我沒有真正看到很多關於CFCRequest方法。它有更新的版本嗎?我正在使用CF 8,現在要遷移到CF 9.感謝您的文檔鏈接。 –

1

在你的解決方法中,'this'是指組件Application.cfc,它不是一個結構。你想要的是結構,變量,因此

<cfset StructDelete(variables,'onRequest')> 
+0

感謝@BKBK的回覆。對不起,我過去12天沒有回覆過你的假期。 使用「this」也起作用。你說的話可能是正確的。 我對使用「this」及其工作原理的理解是因爲「this」指的是整個組件(包括方法),並且只有一個onRequest方法可以找到它。你怎麼看? –

相關問題