我遇到了一个问题,而且可能比我愿意承认追踪这件事要多几个小时。
具体来说,我有一个 jQuery AJAX 调用,它将一些数据发布到 .cfc 我调用该方法并传入一些参数运行一些数据库查询,然后什么都没有返回。然后我使用AJAX函数的success方法继续。
我在 ColdFusion 11 服务器上开发了它,效果很好。然而,在我最近迁移到 Lucee 服务器时,我遇到了各种各样的问题。
首先,我注意到没有调用成功方法。但是 Firebug 在通话中报告了 200 OK。所以我进一步检查,数据库查询都在该方法中运行。除此之外,Lucee 日志看起来也很干净,并确认数据库查询已成功运行。所以一切都很好(我知道要检查的事情)。我已经完成了基础知识并尝试了不同的机器和不同的浏览器,如果这是特定的,但没有任何改变。
我注意到 Firefoxes Inspect Element 抛出了 no element found 错误,经过进一步检查,它返回我发布到 cfc 的参数未定义。这使我进一步挖掘,我注意到它正在返回此错误 'XML Parsing Error: no element found' 仍然说返回 200 OK,但不足以通过 AJAX 调用的成功方法.
我有并尝试过但没有实际结果的其他想法是启用 CORS,包括 JSON 的返回类型(它消除了 XML 错误,但几乎没有做其他事情)。
关于我可以尝试什么的任何想法,我开始怀疑整个 Lucee 设置是否拙劣,我需要废弃它并重新安装?
感谢您提供的任何帮助或想法。
编辑:很抱歉没有附加代码,因为这似乎连接到服务器设置我天真地希望有人会去,“是的,你需要设置这个设置并修改这个文件,你们都很好!” 然后我们都会嘲笑 Tomcat。
我假设第一条评论说:“向我们展示你的代码!” 事实并非如此。因此,根据提示,我整理了一个最低限度的测试用例,它仍然证实了我原来的问题:
测试.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>
测试.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
和以前一样,我们总是非常感谢任何帮助。