启用RDS或管理员密码

时间:2012-05-06 00:26:54

标签: coldfusion

我不知道为什么我会这样。如果我浏览

http://www.phillipsenn.com/Matrix/JSON/Upload/Upload.cfc?method=Save&Item=1

然后组件正常工作。 但是,如果我这样做,那么它会要求输入RDS密码。

!function($, window, undefined) {
    var local = {};
    local.data = {};
    local.type= 'post',
        local.dataType= 'json',
        local.data.method = 'Save';
    local.data = {
        Item : 'Item One'
    }

    var myPromise = $.ajax('Upload.cfc',local);
    myPromise.done(function(result) {
        console.log('success!');
    });

    myPromise.fail(function(A,B,C) {
        $('body').append(A.responseText);
        console.log(B);
        console.log(C);
    });
}(jQuery, window);

最后,这是我的组件:

<cfcomponent>
<cffunction name="Save" access="remote" output="yes">
    <cfargument name="Item">
    <cfset var local = {}>

    <cfquery datasource="#Application.Datasource#" username="#Application.Username#" password="#Application.Password#">
    INSERT INTO lru.Clip(ClipDesc) VALUES('test')
    </cfquery>
    #arguments.Item#
</cffunction>
</cfcomponent>

1 个答案:

答案 0 :(得分:3)

菲尔,

我猜不知道你的ajax代码在没有“方法”url param的情况下调用CFC。当它这样做时,CF认为你将尝试“CFC Explorer” - 一个简洁的小工具,可以创建一个类似JFC的Cav描述。如果你只是浏览你的CFC而没有任何url参数,你可以看到它(即使在本地):

http://www.phillipsenn.com/Matrix/JSON/Upload/Upload.cfc

所以有些东西必须随着你的Ajax调用而改变......我认为问题是你最后的陈述......

local.data = {
    Item : 'Item One'
}

正在替换它上面的“数据”集.....用一个名为“Item”的结构。当你这样做的时候,你正在丢失一个叫做“方法”的键。尝试:

local.data.Item = 'Item One';