【问题标题】:cfwheels returning JSON that is commented out [duplicate]cfwheels 返回被注释掉的 JSON [重复]
【发布时间】:2014-11-20 20:58:47
【问题描述】:

我正在使用 cfwheels 框架进行冷融合开发。我正在尝试(通过 ajax)验证用户是否在将表单提交到需要用户登录的安全页面之前登录。我的 ajax 看起来像这样

function viewOnWebsite()
{
    params = {
        format: "json"
        , domain: '.#page.domain#'
    };

    $.ajax({
         url: '/user/login'
        , data: params
        , dataType: 'json'
        , type: 'POST'
        , success: function(result, status, jqXHR){
            if(result)
            {
                $('##frmViewOnWeb').submit();
            }
            else
            {
                alert('could not validate access to the website. You can try to refresh the page or log in');
            }
        }
        , error: function(jqXHR, status, error){
            alert(status);
            console.log(error);
        }
    });
}

这里是控制器(你需要看到的部分)

<cfcomponent extends="Controller">
        <cffunction name="init">
            <cfset provides("html,json")>
        </cffunction> 
    <cffunction name="login"><cfscript>


        validationFunctionThatRedirectsInvalidUsers(true, 18);

            /* Check to see if the authtoken still exists in the db. */
            if(tokenIsValid(session.user.aToken))
            {
                response = {valid = "true"};
            }
            else
            {
                /* Create a new token */
                application.user.notImportantCode();

                /* Set the cookie */
                cookie.somethingYouDontNeedToKnow = {
                    value = session.user.aToken
                    , domain = params.domain
                };

                response = {valid = "true"};
            }

            renderWith(data = response, returnAs = "json");
        </cfscript></cffunction>

请原谅我此时代码的草率。

奇怪的是,我从这个函数得到的响应是一个注释掉的 JSON 字符串,看起来像这样:

//{"valid":true} 

Chrome、firefox 和 IE 无法解析这个(没有尝试过 safari)。任何帮助表示赞赏。

如果函数成功则返回 true,否则返回 false。因此我想将响应设置为真或假,而不是像我目前拥有的结构。我实际上只是在尝试,因为当我简单地返回 true 时,我得到了一个像这样的 json 字符串:

//{true}

【问题讨论】:

    标签: jquery ajax json coldfusion cfwheels


    【解决方案1】:

    很可能在 CF Admin 或 Application.cfc 中启用了带有“//”的前缀序列化 JSON。

    http://www.petefreitag.com/item/720.cfm

    【讨论】:

    • 谢谢 我现在觉得有点傻。这是一个非常简单的答案。我知道这将是一件容易的事
    猜你喜欢
    • 2016-04-25
    • 2016-07-14
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2013-11-12
    • 2012-02-24
    • 2021-12-26
    • 2014-02-12
    相关资源
    最近更新 更多