Coldfusion Ajax-Request引发JSON.parse错误

时间:2018-08-03 09:50:04

标签: jquery json ajax coldfusion

我有一个非常简单的Ajax-Request。它只是从数据库请求一些数据。问题是我总是收到JSON.parse错误(第一行,第一列)。 Coldfusion函数输出的JSON有效且正确。

当我仅将代码复制到.cfc文件时,一切正常。为什么会这样?

冷融合:

<cffunction name="getAllDatatypes" access="remote" returntype="query" returnformat="json">

    <cfquery name="getAllDatatypes" datasource="#DSN#">
        SELECT
            id_datatype,
            name
        FROM
            datatype
    </cfquery>

    <cfreturn getAllDatatypes>

</cffunction>

jQuery:

function getAllDatatypes() {
    $.ajax({
        url: "getData.cfm",
        type: "post",
        dataType: "json",
        data: {method: "getAllDatatypes"}       
    }).done(function(result) {
        console.log(result);
    }).fail(function(error1, error2, error3) {
        console.log(error1 + " " + error2 + " " + error3);
    });
}

1 个答案:

答案 0 :(得分:4)

remote文件中创建.cfc函数时,CFC路径开始像Web服务那样运行。像下面这样拨打电话时,

http://localhost/components/testcomp.cfc?method=getAllDatatypes

ColdFusion知道您正在尝试在getAllDatatypes组件中调用远程函数components/testcomp.cfc,并且如果找到了远程函数getAllDatatypes并以{{ 1}},plaintextxml

另一方面。对json文件的任何调用都没有这种情况。即使您已在文件中创建了函数,ColdFusion也不希望将远程方法调用到.cfm文件中。

PS:使用.cfmvar范围初始化函数中的变量始终是个好主意。