2013-03-24 50 views
1

我有以下的ColdFusion功能:parsererror:語法錯誤:意外的令牌小於號

component { 
url._cf_nodebug=true; 
url.returnformat = "json"; 
url.queryformat = "column"; 

remote function Read(StateID) { 
    local.result = {}; 
    local.result.MSG = ""; 
    // local.result.QRY = QueryNew(); 
    local.svc = new query(); 
    local.svc.addParam(value=arguments.StateID,cfsqltype="cf_sql_integer"); 
    local.svc.setSQL("SELECT * 
     FROM State WHERE StateID = ?"); 
    local.svc.setName = "qry"; 
    local.obj = local.svc.execute(); 
    local.result.QRY = local.obj.getResult(); 
    return local.result; 
} 
} 

;當我從test.cfm測試它,它工作正常:

<cfset qry = CreateObject("component","ajaxEnabled").Read(154)> 

所以我覺得問題是我如何將我的參數傳遞給$ .ajax方法。 當我打電話吧,我得到:parsererror:語法錯誤:意外的令牌<

;(function($, window, undefined) { 
    var document = window.document; 
    $('#States').on('click','a',function() { 
     var local = {}; 
     local.data = {}; 
     local.data.StateID = $(this).data('stateid'); 
     local.dataType = 'json'; 
     local.context = $(this)[0]; 
     local.Promise = $.ajax('ajaxEnabled.cfc',local); 
     local.Promise.fail(function(A,B,C) { 
      console.log(B + ': ' + C); 
     }); 
    }); 
})(jQuery, window); 

我可以在控制檯local.data.StateID = 153,這是我想要什麼看。

這是the link to the page。和here's the link to test.cfm

回答

2

你指定CFC在你的AJAX調用,但沒有哪一種方法調用。所以CF會將請求解釋爲一個來查看該CFC的API文檔,這就是它返回瀏覽器的原因。所以AJAX調用正在接收標記,而不是JSON。另外,在將來:當你說你得到一個錯誤,並且你正在處理多個系統(例如:CF和JS)時,確保說哪個系統給你提供了錯誤。這節省了我們不得不猜測。

+0

謝謝Adam!是的,我大聲說:「噢!這是因爲我沒有指定一種方法!」我衝回到這裏,看到你已經回答了。 – 2013-03-24 19:58:36

2

該問題與您的JavaScript代碼本身無關......它與您在做服務器端的事情有關。如果您使用瀏覽器工具,則會看到以下回應:

<br> <br> 
Unsupported Operation. Check application log for more details. 
<br> <br> 

解析器錯誤是針對返回的數據,而不是您的代碼。

在這種情況下,URL是http://www.phillipsenn.com/CFIDE/componentutils/cfcexplorer.cfc?method=getcfcinhtml&name=Matrix.CRUD.jqm.ajaxEnabled.ajaxEnabled&path=/Matrix/CRUD/jqm/ajaxEnabled/ajaxEnabled.cfc

+0

哦!這給了我一個主意! – 2013-03-24 19:35:21

+0

我在嘗試導航到[http://www.phillipsenn.com/Matrix/CRUD/jqm/ajaxEnabled/ajaxEnabled.cfc?StateID=154](cfc直接)時得到了這個結果。 – 2013-03-24 19:50:21