【发布时间】: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