微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery Ajax和ColdFusion

我正在尝试向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.]
                }
       });
   };

我的ColdFusion页面验证密码和用户名,并返回,但我不知道如何处理它返回的内容?我是ColdFusion的新手.

<cffunction "TryLogin" returntype="boolean">

</cffunction>

..我不确定如何在验证后从函数返回数据,但一旦返回就单独读取它.以前有人处理过这个吗?

谢谢,
乔治

解决方法

您是在提交查询字符​​串还是表单帖子?通常登录是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>

现在您已经拥有了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!');}
                }
       });
   };

正如另一个答案所提到的,如果你要返回一个复杂的数据类型,比如结构或数组,你需要指定一个’json’的returnFormat并修改你的数据arg,如下所示:

data: {method: 'tryLogin',returnFormat: 'json',password: password}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐