Javascript 对于Ajax,如何在CFWheels中启动控制器/操作?
我已经试着让cfwheels使用FineUploader两天了,但我不知道如何强制jQuery脚本执行控制器/操作。我已经走了这么远了: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
$(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) />