Я пытаюсь сделать Ajax-вызов с помощью jQuery для моего компонента ColdFusion в QueryData.cfc
Вот код QueryData.cfc:
<cfcomponent name="querydata" access="remote" hint="getting data from SQL database">
<cffunction name="QueryData_Pt" access="remote" output="false" returntype="any" returnformat="JSON">
<cfquery NAME="GrabData_Pt" DATASOURCE="#Application.PrimaryDataSource#" cachedWithin = "#CreateTimeSpan(0,0,1,0)#">
//code;
</cfquery>
<cfloop query="GrabData_Pt">
<cfset Pd_data=serializeJSON(GrabData_Pt)>
</cfloop>
<cfreturn GrabData_Pt>
</cffunction>
<cffunction name="QueryData_Pd" access="remote" returntype="any" returnformat="JSON">
<cfquery NAME="GrabData_Pd" DATASOURCE="#Application.PrimaryDataSource#" cachedWithin = "#CreateTimeSpan(0,0,1,0)#">
//code
</cfquery>
<cfloop query="GrabData_Pd">
<cfset Pd_data=serializeJSON(GrabData_Pd)>
</cfloop>
<cfreturn GrabData_Pd>
</cffunction>
<cffunction name="QueryData_Rh" returntype="any" access="remote" returnformat="JSON">
<cfquery NAME="GrabData_Rh" DATASOURCE="#Application.PrimaryDataSource#" cachedWithin = "#CreateTimeSpan(0,0,1,0)#">
//somecode
</cfquery>
<cfloop query="GrabData_Rh">
<cfset Rh_data=serializeJSON(GrabData_Rh)>
</cfloop>
<cfreturn Rh_data>
</cffunction>
</cfcomponent>
У меня проблема в том, что ничего не возвращается. Я выгрузил данные компонента, и запрос работает, как и ожидалось, но это не так, но по какой-то причине данные поступают в мой файл .cfm. Я уверен, что что-то не так с jQuery, поэтому вот этот код:
var pt_var;
var pd_var;
var rh_var;
var pt_array = [];
var pd_array = [];
var rh_array = [];
$(function() {
getdatafromquery();
function getdatafromquery() {
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8", // this
dataType: "json",
url: 'QueryData.cfc',
data: {
method: 'QueryData_Pt'
}
}).done(function(pt_data) {
pt_var = pt_data;
});
}
Затем я использую эти данные и строю их с использованием старших графиков. Я вижу, что ничего не передается через Google Chrome DevTools. Надеюсь, понятно, что я делаю не так. Я новичок в jQuery, Ajax и ColdFusion, так что это огромная кривая обучения для меня, ха-ха. Любая помощь очень ценится!
EDIT:
Оказывается, я не сериализовался в JSON. Однако теперь, когда он проходит, он передает каждую ячейку как отдельный массив. Вот пример:
DATA
:
Array(79)
0:[498]
1:[494]
2:[496]
3:[494]
4:[498]
5:[495]