2015-09-28 102 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可以达到我想要的。

因此,我也让我的代码在这个过程中更好一些。

希望这可以帮助有人疯狂(至少对我来说)难以诊断半失败的问题。