我正在使用ColdFusion11。我继承了一个使用mm_wizard_login
ColdFusion功能实现其登录功能的应用程序。现在,我必须在此应用程序中实现更改密码功能。因此,如果用户登录并且应用程序发现该用户是第一次登录,则应重定向该用户以更改其初始密码。
所以我决定使用jQuery第三方模式插件。
我在mm_wizard_login.cfm
页中添加了jQuery插件功能。在身份验证过程中,即用户需要更改密码的场景,mm_wizard_authenticate.cfc
拒绝登录,并将其重定向回mm_wizard_login.cfm
页,然后打开插件,并允许用户键入新密码。密码。用户单击提交后,在jQuery中,我拦截了他们的提交,并且正在对另一个cfc进行AJAX调用,该cfc接受新密码并调用SQL Server存储过程来更改其密码。此cfc方法将JSON返回AJAX调用,但返回值不是JSON,它返回mm_wizard_login.cfm
页面本身的HTML。
一切正常,除了需要JSON的AJAX调用之外。
在Chrome开发工具中,我进入了“网络”标签,并在“响应”标签下,它返回了mm_wizard_login.cfm
页面的HTML。我不明白。
以下是我的AJAX通话:
var refData = $.ajax({
url: 'testmethod.cfc',
method: 'POST',
dataType: 'json',
data:{
method:'ChangePassword', //Call the method
jsonData: JSON.stringify($(formdata).serializeArray())
}
})
.done (function (d) {
if (d.Result == 'OK')
$("#modal-custom").iziModal('#modal-custom','setTitle', d.message);
$("#modal-custom").iziModal('#modal-custom','close');
else{
changePwd_ErrorHandler(d.message);
}
})
.fail (function (XMLHttpRequest, textStatus, errorThrown) {
changePwd_ErrorHandler(textStatus + '. Please try again');
});
什么都不做,然后我只是在mm_wizard_login.cfm
页面上尝试了一个基本的AJAX调用,如下所示:
var test = $.ajax({
url: 'testmethod.cfc',
method: 'POST',
dataType: 'json',
data:{
method:'MethodTest', //Call the method
}
})
.done (function (d) {
})
.fail (function (XMLHttpRequest, textStatus, errorThrown) {
alert('Unable to change password. Please try again');
});
这也不起作用。它正在返回相同的东西。不是JSON,而是mm_wizard_login.cfm
的HTML内容。请帮忙。
这是从登录页面调用的我的测试cfc函数。
[更新]我的测试cfc方法:
<cffunction name="MethodTest" access="remote" output="true" returntype="string" returnformat="json" hint="Adds/Edits User Info .">
<cfset retJSON = '{"Result": "Error","message": "Action Failed", "TotalRecordCount":0}'>
<cfreturn retJSON>
</cffunction>