这是我在这里的第一篇文章,如果我有任何发帖错误,请随时告诉我。
因此问题如下: 我正在一个个人项目,一个eComerce网站上工作,直到我开始为其添加安全性之前,一切都进行得很好。
我的想法是我有一个“管理产品”标签,其中列出了我所有的产品。您可以从那里编辑产品或激活/停用产品。
单击滑块以激活/禁用产品时,会出现一个引导框,询问您是否确定要激活/禁用产品,如果单击“确定”,则显示以下图片:
如果我单击“主页”,然后再次单击“管理产品”,则滑块会执行应做的操作,即激活/停用该产品。
关于如何解决此问题的任何想法?我已经搜索了,但到目前为止没有任何搜索。
以下是一些示例代码:
控制器
@RequestMapping(value = "/product/{id}/activation", method=RequestMethod.POST)
@ResponseBody
public String handleProductActivation(@PathVariable int id) {
// fetch product by id form the database
Product product = productDAO.get(id);
boolean isActive = product.isActive();
// activating and deactivating based on the value of the active field
product.setActive(!product.isActive());
// updating the product
productDAO.update(product);
return (isActive) ? "You have successfully deactivated the product with id " + product.getId() :
"You have successfully activated the product with id " + product.getId();
}
js
initComplete: function () {
var api = this.api();
api.$('.switch input[type="checkbox"]').on('change' , function() {
var dText = (this.checked)? 'You want to activate the Product?': 'You want to de-activate the Product?';
var checked = this.checked;
var checkbox = $(this);
debugger;
bootbox.confirm({
size: 'medium',
title: 'Product Activation/Deactivation',
message: dText,
callback: function (confirmed) {
if (confirmed) {
$.ajax({
type: 'POST',
url: window.contextRoot + '/manage/product/'+checkbox.prop('value')+'/activation',
timeout : 100000,
success : function(data) {
bootbox.alert(data);
},
error : function(e) {
bootbox.alert('ERROR: '+ e);
//display(e);
}
});
}
else {
checkbox.prop('checked', !checked);
}
}
});
});
}
// for handling CSRF token
var token = $('meta[name="_csrf"]').attr('content');
var header = $('meta[name="_csrf_header"]').attr('content');
if(token.length > 0 && header.length > 0) {
// set the token header for the ajax request
$(document).ajaxSend(function(e, xhr, options) {
xhr.setRequestHeader(header, token);
});
}