Javascript 对于Ajax,如何在CFWheels中启动控制器/操作?

Javascript 对于Ajax,如何在CFWheels中启动控制器/操作?,javascript,jquery,coldfusion,cfwheels,Javascript,Jquery,Coldfusion,Cfwheels,我已经试着让cfwheels使用FineUploader两天了,但我不知道如何强制jQuery脚本执行控制器/操作。我已经走了这么远了: $(document).ready(function() { var restricteduploader = new qq.FineUploader({ // Since we're using jQuery, use the jQuery way to select the HTML element element

我已经试着让cfwheels使用FineUploader两天了,但我不知道如何强制jQuery脚本执行控制器/操作。我已经走了这么远了:

$(document).ready(function() {

    var restricteduploader = new qq.FineUploader({
        // Since we're using jQuery, use the jQuery way to select the HTML element
        element: $('##restricted-fine-uploader')[0],
        request: {
            type: "POST",
            url: $(this).attr("href") + "/index.cfm?controller=users&action=UploadFileXhr&format=json", // References "/say/hello?format=json"
            dataType: "json",
            endpoint: '/index.cfm?controller=users&action=UploadFileXhr&format=json'
        },
        multiple: false,
        validation: {
            allowedExtensions: ['jpeg', 'jpg', 'txt'],
            sizeLimit: 5120000000 // 50 kB = 50 * 1024 bytes
        },
        text: {
            uploadButton: 'Click or Drop'
        },
        showMessage: function(message) {
            // Using Twitter Bootstrap's classes and jQuery selector and method
            $('##restricted-fine-uploader').append('<div class="alert alert-error">' + message + '</div>');
        },
        debug: true
    });
});
这三行代码正是我试图整合到代码中的内容(因为我认为这是我所需要的):

键入:“帖子”,

url:$(this.attr(“href”)+“?format=json”,//引用“/say/hello?format=json”

数据类型:“json”,

但我尝试过的一切都没有奏效。我甚至不能用我的实际上传代码来让它工作,因为我甚至不能让上传程序启动所需的控制器/操作

希望有人能给我指出正确的方向。谢谢大家!


问题也发布到了cfWheels邮件列表:

我不熟悉FineUploader,但通常当我在Wheels中执行AJAX请求时,我使用urlFor()函数来构建正确的控制器/操作位置


我想我知道你面临什么问题。遵循以下步骤:

  • 确保在控制器
    中,比如.cfc
    为Ajax调用提供JSON格式: 在
    Say.cfc
    init()函数中,确保添加以下内容:

    <cffunction name="init" hint="It secures component from invalid access">
        <!--- this is necessary --->
        <cfset provides("json") />
    </cffunction>
    

  • 我希望这对您有用。

    “但我尝试过的一切都不起作用”-错误:“不起作用”是未定义的。我提到的这3行,我尝试将它们从请求括号中取出,然后自己放进去。我试着注释端点,只是把这3行留在那里,这也不起作用,因为端点仍然被包括(默认情况下)并设置为server/upload,这对我的案例不起作用。我试着把这三行放在端点之前、之后、内部,但仍然没有。现在的方式是,在我的FireBug中,我得到了这样的结果:作为“帖子”,但仍然失败。我还尝试将我的上传操作设置为“redirectTo(route=“home”);abort;”,以查看是否会触发并排除该操作,因为这是一个问题,但它从来没有这样做。您似乎还没有完全描述出问题所在-您需要提供错误消息和/或说“我期望X,但收到Y”。对于熟悉cfWheels/FineUploader的人来说,你所说的可能更有意义,但这似乎只是故事的一半。正确地将您提供的详细信息包括在您的评论中,例如,包括您在FireBug中获得的完整URL,并指出URL是否看起来正确但行为错误,或者是否有错误的查询字符串,或者其他内容。
    <cffunction name="init" hint="It secures component from invalid access">
        <!--- this is necessary --->
        <cfset provides("json") />
    </cffunction>
    
    <!--- this will go at the very end of the action --->
    <!--- here the attribute data is the data you want to serve: a query, struct or any other custom data generated inside a `<cfsavecontent>`  ---> 
    <cfset renderWith(data=data,layout=false) />