我有一些在 Ajax 调用后必须返回的数据。在我的.cfc
页面上,我有转换数据的逻辑。每列用制表符分隔,每行用 CRLR 分隔。我将cffunction
返回格式设置为JSON
. 返回数据后,我使用 JavaScript 以所需格式分隔列和行。当我这样做时,我看到很少有人在讨论JSON
ColdFusion 9 中的各种问题的博客。在我的开发站点上,我使用 ColdFusion 10,但我没有注意到我的数据中有任何问题。但是在现场我有 ColdFusion 9,我想知道这是否会导致一些问题。在我的数据中,我有像地址这样的字段,这个字段允许所有类型的字符。例如,如果您的数据是这样的,coldfusion 9 中的返回类型 JSON 会出现问题2131231D
如果字符串和整数的组合以D
JSON 结尾,则不会返回相同的数据。所以我的问题是在这种情况下我应该怎么做?这个问题有什么解决办法吗?JSON 是否可靠并推荐在 ColdFusion 9 中使用?我也在寻找一些工具,可以以我可以避免的方式转换我在 .cfc 页面上的数据cffunction returnformat='JSON'
。这是我的代码:
<cfcomponent>
<cffunction name="getData" access="remote" output="true" returnformat="JSON">
<cfset fncResults = StructNew()>
<cfif myFile = true>
<cfoutput query="myData">
//Here I organize my data
</cfoutput>
<cfset getList = arrayToList(buffer,crlf)/>
<cfset fncResults.status = "200">
<cfset fncResults.fileData = #getList#>
<cfelse>
<cfset fncResults.status = "400">
<cfset fncResults.message = "The file was not properly uploaded.">
</cfif>
<cfreturn fncResults>
</cffunction>
</cfcomponent>
这是我的 JavaScript:
function getFile(){
$.ajax({
type: 'POST',
url: 'Components/test.cfc?method=getData',
data: new FormData($('#myForm')[0]),
cache: false,
dataType: 'json'
}).done(function(obj){
if(obj.STATUS === 200){
return obj.FILEDATA;
}else{
return false;
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
});
}