我正在尝试向ColdFusion页面提交查询字符串.我希望ColdFusion页面根据登录是否成功返回true或false.
单击我的登录按钮时:
function AttemptLogin(userName, password)
{
$.ajax({
url: 'login.cfc&user=' + userName + '&' + 'password=' + password,
success: function(data) {
$('.result').val();
[Check for true or false here.]
}
});
};
Run Code Online (Sandbox Code Playgroud)
我的ColdFusion页面验证密码和用户名,并返回,但我不知道如何处理它返回的内容?我是ColdFusion的新手.
<cffunction "TryLogin" returntype="boolean">
</cffunction>
Run Code Online (Sandbox Code Playgroud)
..我不确定如何在验证后从函数返回数据,但一旦返回就单独读取它.以前有人处理过这个吗?
谢谢,乔治
您是在提交查询字符串还是表单帖子?通常登录是POST,而不是GET.但无论如何.
我通常喜欢发布更结构化的响应,以便您可以向用户返回其他信息,如错误消息,但后面是简单的true/false示例.你可以给这个方法一个远程访问属性,如下所示:
<cfcomponent name="Login">
<cfset variables.dsn = "mydb" />
<cffunction name="tryLogin" access="remote" output="false" returntype="boolean">
<cfargument name="username" type="string" required="true"/>
<cfargument name="password" type="string" required="true"/>
<cfset var loginQuery = "" />
<cfquery name="loginQuery" datasource="#variables.dsn#">
SELECT *
FROM users
WHERE
username = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.username#"/>
AND
password = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.password#"/>
</cfquery>
<cfif loginQuery.recordcount>
<cfreturn true />
<cfelse>
<cfreturn false />
</cfif>
</cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)
现在您已经拥有了CFC,您的基本脚本应该可以正常工作,只需进行一些修改:
function AttemptLogin(userName, password)
{
$.ajax({
url: 'login.cfc',
data: {method: 'tryLogin', username: userName, password: password},
success: function(data) {
if (data == true) { alert('true!');} else { alert('false!');}
}
});
};
Run Code Online (Sandbox Code Playgroud)
作为另一个答复中提到,如果你返回一个复杂的数据类型,如结构或数组,你需要指定的"JSON"一个returnFormat和修改数据ARG,就像这样:
data: {method: 'tryLogin', returnFormat: 'json', username: userName, password: password}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4409 次 |
| 最近记录: |