语法错误:意外的令牌小于符号

parsererror: SyntaxError: Unexpected token less than sign

本文关键字:令牌 小于 符号 意外 错误 语法      更新时间:2023-09-26

我有以下ColdFusion函数:

component {
url._cf_nodebug=true;
url.returnformat = "json";
url.queryformat = "column";
remote function Read(StateID) {
    local.result = {};
    local.result.MSG = "";
    // local.result.QRY = QueryNew();
    local.svc = new query();
    local.svc.addParam(value=arguments.StateID,cfsqltype="cf_sql_integer");
    local.svc.setSQL("SELECT *
        FROM State WHERE StateID = ?");
    local.svc.setName = "qry";
    local.obj = local.svc.execute();
    local.result.QRY = local.obj.getResult();
    return local.result;
}
}

当我从test中测试它时。Cfm,它工作正常:

<cfset qry = CreateObject("component","ajaxEnabled").Read(154)>

所以我认为问题是我如何将参数传递给$。ajax方法。当我调用它时,我得到:parsererror: SyntaxError: Unexpected token <</p>

;(function($, window, undefined) {
    var document = window.document;
    $('#States').on('click','a',function() {
        var local = {};
        local.data = {};
        local.data.StateID = $(this).data('stateid');
        local.dataType = 'json';
        local.context = $(this)[0];
        local.Promise = $.ajax('ajaxEnabled.cfc',local);
        local.Promise.fail(function(A,B,C) {
            console.log(B + ': ' + C);
        });
    });
})(jQuery, window);

我可以在控制台中看到local.data.StateID = 153,这就是我想要的。

这是到该页面的链接。这里是test.cfm的链接

您在AJAX调用中指定了CFC,但没有指定要调用的方法。CF会将请求解释为查看那个CFC的API文档,这是它返回给浏览器的内容。所以AJAX调用接收的是标记,而不是JSON。

同样,在未来:当你说你得到一个错误,你正在处理多个系统(例如:CF和JS),确保说哪个系统给你的错误。

这个问题与你的JavaScript代码本身无关…它与你在服务器端做的事情有关。如果您使用浏览器工具,您将看到这样的响应:

<br> <br>
Unsupported Operation. Check application log for more details.
<br> <br>

解析器错误是针对返回的数据,而不是您的代码。

本例中的URL是http://www.phillipsenn.com/CFIDE/componentutils/cfcexplorer.cfc?method=getcfcinhtml&name=Matrix.CRUD.jqm.ajaxEnabled.ajaxEnabled&path=/Matrix/CRUD/jqm/ajaxEnabled/ajaxEnabled.cfc