所以我有一个有趣的问题,我希望其他人之前偶然发现(并解决了)。
我已为此特定应用程序的用户设置了“更改密码”选项,如果用户忘记密码,他们可以请求更改密码。我向他们发送了一封电子邮件,其中包含一个嵌入链接的哈希,指向一个简单的“更改密码”屏幕。
一旦用户点击更新按钮 - 我通过ajax调用适当的控制器动作,服务器处理各种事情,例如更新密码,删除令牌和重定向用户。
这是与更新按钮绑定的ajax:
updatePassword: function() {
$.ajax({
url: '/side-panel/update-password',
dataType: 'json',
type: 'post',
data: {
token: $('input[name=token]').val(),
id: $('input[name=id]').val(),
new_password: $('input[name=new-password]').val()
},
beforeSend: function() {
kts.show_loader('show');
},
success: function(data) {
kts.show_loader('hide');
console.log(data);
}
});
}
用户第一次点击按钮 - 控制台显示:
请注意下面的URL和左上角的网络条目:
"http://code.kenstowell.local/".
调用相应的操作,但返回302,然后重定向到站点的基本URL。
用户第二次点击按钮时,它会调用控制器动作。
请注意此处的网址:"http://code.kenstowell.local/index/update-password"
这里的真正问题是,在第一次调用/按钮单击时 - 服务器端代码实际得到处理,但XHR对象返回失败。
如果这是信息过载,我道歉。如果您需要更多代码/样品,请告诉我。任何帮助表示赞赏。
肯