gpt4 book ai didi

jquery - ColdFusion 在 jquery 中从 CFC 返回数据以构建相关的选择不起作用

转载 作者:行者123 更新时间:2023-12-01 00:21:44 25 4
gpt4 key购买 nike

尝试使用 CFC 和 jquery 进行简单的相关选择,看起来它应该可以工作,但我不断收到未定义的错误。

第一个选择将状态发送到 CFC,该 CFC 返回 ID 和大学名称的数组 - 这似乎有效(仅显示 ajax 调用,因为它在此处运行良好)

$.ajax({ 
method: 'post',
dataType: 'json',
url: compath + '/remote.cfc',
data: {
method: 'querySchoolsByState',
returnFormat: 'json',
school_state: $selStateShort
},
dataFilter: function(data, type){
//CF has // set as security prefix
return type == 'json' ? data.replace(/^(\/{2})?/, '') : data;
},
success:
function(results,status,xhr){
var $schoolSelect = $('#school');
$schoolSelect.find('option:not(:first)').remove();
if (results.length){
console.log(results.length);
console.log(results);
$.each (results, function(i){
console.log(results[i].co_coid);
$collegeSelect.append('<option value="' + results[i].co_coid + '">' + results[i].co_name + '</option>');
});

前两个控制台日志按预期工作 - 长度和实际 json 数据:

enter image description here

这个 (console.log(results[i].co_coid);) 只是给出了未定义。

我很好奇这是否与 dataFilter 不起作用以及 Chrome 开发工具处理//但代码不处理它有关。如果我查看“网络”选项卡,我确实会看到//前缀:

enter image description here

最佳答案

我将快速说明 ColdFusion 函数如何区分大小写(尤其是 JSON)。

<cfscript>
function testJSON() returnFormat="JSON" {
var retVal = {
imlower : "lowercase" ,
IMUPPER : "UPPERCASE" ,
ImMixed : "Mixed Case" ,
"ImQuoted" : "Quoted Case"
} ;

return serializeJSON(retVal) ;
}

function testNoJSON() {
var retVal = {
imlower : "lowercase" ,
IMUPPER : "UPPERCASE" ,
ImMixed : "Mixed Case" ,
"ImQuoted" : "Quoted Case"
} ;

return retVal ;
}
writeDump(testJSON());
writeDump(testNoJSON());
</cfscript>

这将返回 JSON 字符串{"IMUPPER":"UPPERCASE","IMMIXED":"Mixed Case","IMLOWER":"lowercase","ImQuoted":"Quoted Case"}和 ColdFusion 结构。两者都显示大写的键名称(除非引用)。

因此,CF 会将键大写,除非它们被引号括起来。由于应用程序可能与许多不同类型的技术或系统进行交互,这些技术或系统以不同的方式处理区分大小写的问题,因此了解变量从函数中出来时的样子非常重要。如果您要使用 Javascript(区分大小写),有时最好将所有变量设为大写,这样您就不会认为在传递 ImMixed 时会传递 ImMixed你实际上正在传递IMMIXED

https://cffiddle.org/app/file?filepath=97aaf3fa-4cd5-4579-9ee8-2fa1314d3304/d8e80b02-8ebb-40b2-8be8-1a08ff36c343/d0e94bc5-d19b-424c-9cd4-cab999c4c8df.cfm

关于jquery - ColdFusion 在 jquery 中从 CFC 返回数据以构建相关的选择不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55939134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com