- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个问题,而且可能花了比我愿意承认的时间更长的时间来追踪这件事。
具体来说,我有一个 jQuery AJAX 调用,它将一些数据发布到 .cfc 我调用该方法并传入一些参数,运行一些数据库查询,然后没有返回任何内容。然后我使用 AJAX 函数的 success 方法继续。我在 ColdFusion 11 服务器上开发了这个,它非常有用。然而,在我最近迁移到 Lucee 服务器时,我遇到了各种各样的问题。
首先我注意到成功方法没有被调用。然而 Firebug 在通话中报告 200 OK。因此,我进一步检查,数据库查询都已在该方法内运行。除此之外,Lucee 日志看起来也很干净,并确认数据库查询已成功运行。所以一切都报告良好(我知道要检查的事情)。我已经完成了基础知识,并尝试了不同的机器和不同的浏览器,以防万一这是特定的,但没有任何改变。
我注意到 Firefox 的 Inspect Element 抛出了 no element found 错误,经过进一步检查,它返回我发布到 cfc 的参数未定义。这让我进一步挖掘,我注意到它返回了这个错误“XML Parsing Error:没有找到元素”仍然说返回是 200 OK,但还不足以进入 AJAX 调用的 success 方法.
我曾尝试过但没有实际结果的其他想法是启用 CORS,包括 JSON 的返回类型(它消除了 XML 错误,但几乎没有其他作用)。
关于我可以尝试什么的任何想法,我开始怀疑整个 Lucee 设置是否被搞砸了,我需要废弃它并重新安装?
感谢您提供的任何帮助或想法。
编辑:抱歉没有附加代码,因为这似乎连接到设置的服务器我天真地希望有人会去,“是的,你需要设置这个设置并修改这个文件你们都很好!”然后我们都会 mock 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
与以前一样,我们始终非常感谢任何帮助。
最佳答案
所以我打了个盹,然后又回来讨论这个问题。我认为这与 ColdFusion 的代码或风格关系不大,而与网络服务器关系更大。
我开始使用各种可用的数据类型,并开始看到返回结果的变化。它们并不是立即显而易见的,因为它们前面有大量的空白。
所以这个问题的一部分是我自己的错误编码。我通常只在需要返回特定内容时才使用数据类型,例如JSON,否则我将其省略,并且将对返回的内容进行“智能猜测”。我猜测我的场景中的主要区别是使用 Apache HTTP Server(有效)与 Apache Tomcat(无效),所以当我包含 dataType: 'text' 然后随意使用 jQuery 函数 .trim() 我可以实现我想要的。
在此过程中我也因此使我的代码变得更好了。
希望这可以帮助那些疯狂地(至少对我来说)难以诊断半默默失败的问题的人。
关于javascript - Lucee/AJAX/CFARGUMENT 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32816147/
我有一个关于cfargument 的问题。如果我在调用 .cfc 时发送参数,首先将其定义为参数有什么好处吗? 或者我可以只在函数内部使用 IsDefined(),而不定义参数吗?
我遇到了一个问题,而且可能花了比我愿意承认的时间更长的时间来追踪这件事。 具体来说,我有一个 jQuery AJAX 调用,它将一些数据发布到 .cfc 我调用该方法并传入一些参数,运行一些数据库查询
我想有一个这样的论点: 我在 http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_a-b_6.html 的文
我正在构建一个将无符号 int32 转换为 ipv4 地址的函数,并且在我使用范围的上半部分进行测试之前,一切都很好。 ColdFusion 似乎将 type="numeric
当在 cffunction 标记之后立即调用时,这两个代码块之间有什么区别: 最佳答案 , 当与默认属性一起使用时,将确保变量存在。因为没有指定范围,bork_bork_bork正在放入 Var
我是一名优秀的程序员,十分优秀!