2012-05-06 66 views
2

我無法得到一個jQuery .ajax調用來發布數據到我的CFC,不知道我缺少什麼。嘗試了許多不同的更正,沒有任何工作。.ajax沒有調用CFC文件來發布數據

$('.addItem').click(function(){ 

    //data from button clicked 

    var fType = $(this).attr('id'); 

    $.ajax({ 
     type: "post", 
     url: "api.cfc", 
     dataType: 'json', 
     data: { method: "add", ID: fType }  
    }); 
)}; 

CFC

<cfcomponent > 
     <cffunction name="add" access="remote " returntype="string"> 
     <cfargument name="ID" type="string" required="true" /> 

     <cfquery datasource="dev" name="formT"> 
      Insert into formMap (num, stuff) 
      Values (1, #arguments.ID#) 
     </cfquery> 

    </cffunction> 
</cfcomponent> 
+1

你做了什麼調試?您是否看到在firebox或控制檯中記錄的xhr請求? –

+0

您的add()方法已定義了returntype =「string」,但不返回字符串 - 這可能會引發錯誤。將其更改爲returntype =「void」,如果您的方法不需要返回任何內容。 – azawaza

回答

1

我相信你需要的方法名稱添加到URL:

$('.addItem').click(function(){ 


//data from button clicked 

var fType = $(this).attr('id'); 

$.ajax({ 
    type: "post", 
    url: "api.cfc?method=add", 
    dataType: 'json', 
    data: { ID: fType }  
)}; 

您還需要json的服務器端反序列化到對象中的/ var到閱讀值。

<cfcomponent >  
     <cffunction name="add" access="remote " returntype="string">  
     <cfargument name="theJson" required="true" />  

     <cfset json = deserializeJson(theJson)> 

     <cfquery datasource="dev" name="formT">  
      Insert into formMap (num, stuff)  
      Values (1, #json.ID#)  
     </cfquery>  

    </cffunction>  
</cfcomponent> 
+0

我已經嘗試了在URL中和在數據下的方法,但都不起作用。 – user1009749

+0

看看這個問題 - http://stackoverflow.com/questions/999501/invoke-coldfusion-function-using-ajax –

+0

這應該是如此簡單,無法正常工作。我正在使用Railo並想知道它是否在尋找CFC文件的位置。如果我只想使用CFM進行測試,那麼我是否只刪除組件標籤並將URL更改爲.cfm? – user1009749