2015-09-28 16 views
2

我遇到了一個問題的牆,它可能比我更關心的是承認跟蹤這件事。Lucee/AJAX/CFARGUMENT失敗

具體來說,我有一個jQuery AJAX調用,將一些數據傳遞給.cfc我調用方法,並且我傳入一些參數運行一些數據庫查詢,然後不返回任何內容。然後我使用AJAX函數的成功方法繼續。

我在ColdFusion 11服務器上開發了它,它可以工作。然而,在我最近搬到Lucee服務器時,我遇到了各種各樣的問題。

首先我注意到成功方法沒有被調用。然而,Firebug在通話中報告了200 OK。所以我進一步檢查了數據庫查詢都在方法中運行。除此之外,Lucee日誌看起來也很乾淨,並承認數據庫查詢已成功運行。所以一切都很好(我知道要檢查的東西)。我已經做了基礎知識,嘗試了不同的機器和不同的瀏覽器,但這並不是什麼特別的,但沒有任何變化。

我注意到Firefoxes Inspect Element拋出了一個沒有找到元素的錯誤,並且在進一步檢查後發現我發佈到cfc的參數是未定義的。這導致我進一步挖掘,並且我注意到它返回了這個錯誤'XML解析錯誤:找不到任何元素'仍然說返回是200 OK,但還沒有足夠通向AJAX調用的成功方法。

其他想法我沒有真正的結果嘗試過,但是啓用CORS,包括JSON的返回類型(去掉了XML錯誤,但沒有其他的東西)。

任何想法我可以嘗試,我開始懷疑整個Lucee設置是否被破壞,我需要廢棄它並重新安裝?

感謝任何幫助或想法,你可以扔

編輯:道歉不重視代碼,因爲這似乎是連接建立,我天真地希望有人會去服務器「。是的,你需要設置這個設置並修改這個文件,你很好!「那麼我們都會對Tomcat發笑。

我假設第一個評論說:「向我們展示你的代碼!」事實並非如此。因此,採取我組建了一個最小的測試案例的提示仍然證實了我最初的問題:

test.cfm

<!--- jQuery 2.1.4 ---> 
<script src="./jQuery-2.1.4.min.js"></script> 

<script> 
$(document).ready(function() { 
    $.ajax({ 
     type: "post", 
     url: "./test.cfc", 
     data: { 
      method: "test", 
      var1: "var1", 
      var2: "var2" 
     }, 
     success: function(result) { 
      alert('Hello Friend!'); 
     } 
    }); 
}); 
</script> 

test.cfc

<CFCOMPONENT> 

    <!--- Test Function ---> 
    <CFFUNCTION NAME="test" ACCESS="remote"> 

     <CFARGUMENT NAME="var1" /> 
     <CFARGUMENT NAME="var2" /> 

     <CFOUTPUT> 
      Var 1: #var1#<br /> 
      Var 2: #var2# 
     </CFOUTPUT> 

    </CFFUNCTION> 
    <!--- End Test Function ---> 

</CFCOMPONENT> 

,可能更重要的我在Lucee 4.5.1.023

像以前一樣,任何幫助總是不勝感激。

+0

您是否已將您的代碼還原到我們可以查看的便攜式數據複製案例中?如果你:你需要。它也應該成爲您常規故障排除的一部分:將您的代碼元素分解出來,不會對您的問題造成影響:這樣可以更好地幫助確定* *會對您的問題做出什麼貢獻。最好向我們展示代碼,而不是描述它是如何工作的,而是讓它用來猜測代碼可能是什麼。 –

回答

0

於是我睡了一覺,回到這個問題。我認爲這與ColdFusion的代碼或風格很少有關,並且更多地與web服務器有關。

我開始使用可用的各種數據類型,並開始看到返回結果的變化。他們並沒有立即顯現,因爲他們之前有大量的空白。

所以這個問題的一部分是我自己的錯誤編碼。我通常只在需要特定返回的東西時才使用dataType。 JSON,否則我把它拋出去,並且在返回的內容上會有一個「智能猜測」。我猜測我的場景中的主要區別是使用Apache HTTP Server(工作)與Apache Tomcat(沒有工作),所以當我包含dataType:'text',然後寬鬆地使用jQuery函數.trim()I可以達到我想要的。

因此,我也讓我的代碼在這個過程中更好一些。

希望這可以幫助有人瘋狂(至少對我來說)難以診斷半失敗的問題。