org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示形式-当我尝试“激活/停用”产品时

时间:2018-07-19 13:52:46

标签: java spring jackson csrf

这是我在这里的第一篇文章,如果我有任何发帖错误,请随时告诉我。

因此问题如下: 我正在一个个人项目,一个eComerce网站上工作,直到我开始为其添加安全性之前,一切都进行得很好。

我的想法是我有一个“管理产品”标签,其中列出了我所有的产品。您可以从那里编辑产品或激活/停用产品。

单击滑块以激活/禁用产品时,会出现一个引导框,询问您是否确定要激活/禁用产品,如果单击“确定”,则显示以下图片:

Exception Image

如果我单击“主页”,然后再次单击“管理产品”,则滑块会执行应做的操作,即激活/停用该产品。

关于如何解决此问题的任何想法?我已经搜索了,但到目前为止没有任何搜索。

以下是一些示例代码:

控制器

@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);

    });             
}
  • 春季版本5.0.0.RELEASE
  • Spring Security版本5.0.7.RELEASE
  • jackson-core;杰克逊-数据绑定杰克逊注释-2.9.5
  • jackson-dataformat-xml-2.9.4

0 个答案:

没有答案