weixin_33671935 2015-09-28 05:22 采纳率: 0%
浏览 33

Lucee / AJAX / CFARGUMENT失败

I'm hitting a wall with an issue and it's been probably more hours than I care to admit tracking this thing down.

Specifically what I have is a jQuery AJAX call that posts some data to a .cfc I call the method and I pass in some arguments run a few database queries and then nothing is returned. I then use the success method of the AJAX function to continue on.

I developed this on a ColdFusion 11 server and it works a treat. However in my recent move to a Lucee server I am having all kinds of issues with this.

First I noticed that the success methods weren't being called. However Firebug is reporting a 200 OK on the call. So I checked further and the databases queries have all run within the method. Beyond that the Lucee logs looks clean as well and acknowledges that the database queries were run successfully. So everything is reporting fine (of the things I know to check). I have doen the basics and tried different machines and different browsers in the off chance this was specific, but nothing budged.

I noticed that Firefoxes Inspect Element was throwing a no element found error and upon further inspection it was returning that the arguments I was posting to the cfc were undefined. This cause me to dig a bit further and I noticed that it was returning this error 'XML Parsing Error: no element found' Still saying that the return was 200 OK, but not ok enough to go through to the success method of the AJAX call.

Other ideas I had and attempted with no real results were enabling CORS, including a returntype of JSON (which removed the XML error, but did little else).

Any ideas of what I can try, I'm starting to wonder if the entire Lucee setup was botched and I need to scrap it and reinstall?

Thanks for any help or ideas you can thrown in.

Edit: Apologies for not attaching code, as this appeared to be connected to a server set up I was naively hoping that someone would go, "Yeah you need to set this setting and modify this file and you're all good!" Then we'd all have a laugh at Tomcat.

I'm assuming with the first comment saying, "Show us your code!" that this is not the case. So taking the hint I put together a minimum test case which still confirms my original issue:

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>

And probably more important I'm on Lucee 4.5.1.023

As before any help is always greatly appreciated.

  • 写回答

1条回答 默认 最新

  • lrony* 2015-09-28 12:12
    关注

    So I took a nap and came back at this issue. I'm thinking this has very little to do with the code or the flavour of ColdFusion and more to do with the webserver.

    I started playing with the various dataTypes available and was starting to see changes in the return result. They weren't immediately apparent as they were preceeded by a significant amount of white space.

    So part of this issue is my own bad coding. I usually only use a dataType when I need something specific returned, e.g. JSON, otherwise I leave it out and there will be an "intelligent guess" made at what is being returned. I'm guessing that the major difference in my scenario is using Apache HTTP Server (worked) versus Apache Tomcat (didn't work) so when I included the dataType: 'text' and then liberally used the jQuery function .trim() I could achieve what I wanted.

    I also consequently made my code a bit better in the process.

    Hopefully this helps someone going nuts on (at least to me) difficult to diagnose issue that was failing semi silently.

    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵