Я пытаюсь сделать вызов 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;
});
}
Затем я использую эти данные и рисую их с помощью highcharts. Я вижу, что через Google Chrome DevTools ничего не передается. Надеюсь, понятно, что я делаю не так. Я новичок в jQuery, Ajax и ColdFusion, поэтому для меня это огромная кривая обучения, ха-ха. Любая помощь действительно приветствуется!
РЕДАКТИРОВАТЬ:
Оказывается, я не сериализовал в json. Однако теперь, когда он передается, он передает каждую ячейку как отдельный массив. Вот пример:
DATA
:
Array(79)
0:[498]
1:[494]
2:[496]
3:[494]
4:[498]
5:[495]
serializeJSON()
на каждой итерации. Вы можете просто сериализовать по возврату, например<cfreturn serializeJSON(GrabData_Pt)>
. - person Miguel-F   schedule 30.08.2018cant read property push of undefined
. Я не вижу вызываемую функцию, я тоже не знаю, как - person G.Rose   schedule 30.08.2018