首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucee / AJAX / CFARGUMENT失败

Lucee / AJAX / CFARGUMENT失败
EN

Stack Overflow用户
提问于 2015-09-28 05:22:39
回答 1查看 531关注 0票数 2

我遇到了一个问题,这可能比我承认追踪这件事花了更多的时间。

具体来说,我所拥有的是一个jQuery AJAX调用,它将一些数据发布到一个.cfc,我调用该方法,并传入一些参数,运行一些数据库查询,然后什么也不返回。然后,我使用AJAX函数的成功方法继续下去。

我是在ColdFusion 11服务器上开发的,这是一个不错的选择。然而,在我最近转向Lucee服务器时,我遇到了各种各样的问题。

首先,我注意到成功的方法并没有被调用。然而,Firebug正在报告呼叫中的200 OK。因此,我进一步检查,数据库查询都在该方法中运行。除此之外,Lucee日志看起来也很干净,并承认数据库查询已经成功运行。所以每件事都报告得很好(我知道要检查的事情)。我已经做了基础,尝试了不同的机器和不同的浏览器,这是偶然的机会,但没有任何变化。

我注意到,火狐检查元素正在抛出一个没有发现错误的元素,在进一步检查时,它返回到我向cfc发送的参数是未定义的。这使我进一步深入研究,我注意到它正在返回这个错误'XML解析错误:没有找到任何元素‘仍然说返回值为200 OK,但还不足以完成AJAX调用的成功方法。

我曾经尝试过的其他没有实际结果的想法是启用CORS,包括返回类型的JSON (它删除了XML错误,但几乎没有做其他事情)。

有什么想法,我可以尝试,我开始怀疑是否整个Lucee设置是错误的,我需要放弃它和重新安装?

感谢你所能提供的任何帮助或想法。

编辑:为没有附加代码而道歉,因为这似乎是连接到一个服务器设置--我天真地希望有人会去,“是的,你需要设置这个设置并修改这个文件,你们都很好!”然后我们都会嘲笑Tomcat。

我假设第一个评论是:“让我们看看你的代码!”事实并非如此。因此,根据这个提示,我列出了一个最小的测试用例,它仍然证实了我最初的问题:

test.cfm

代码语言:javascript
复制
<!--- 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

代码语言:javascript
复制
<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上

像以前一样,任何帮助都会受到极大的感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 12:12:00

所以我打了个盹,回到了这个问题上。我认为这与ColdFusion的代码或风格没有多大关系,更多的是与and服务器有关。

我开始使用各种可用的dataTypes,并开始看到返回结果中的变化。它们并不是立即显现出来的,因为它们被大量的空白所取代。

所以这个问题的一部分是我自己的错误编码。我通常只在需要特定返回的东西时才使用dataType,例如JSON,否则我会忽略它,并对返回的内容进行“明智的猜测”。我猜想我的场景中的主要区别是使用(已工作)与Apache (不起作用),所以当我包含dataType:'text‘,然后慷慨地使用jQuery函数.trim()时,我可以实现我想要的结果。

因此,在这个过程中,我的代码也变得更好了。

希望这能帮助那些疯狂的人(至少对我来说)很难诊断出失败的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32816147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档