weixin_33730836 2020-03-25 07:18 采纳率: 0%
浏览 29

Ajax没有看到Post Controller

I made ajax request, but it don't see Post Controller, which need to handle request. But if i change POST to GET - Get Controller handle ajax request.

My Post Controller:

@RestController
public class AddProductController extends AbstractController {
    private static final long serialVersionUID = 5023867691534917359L;
    private static final Logger LOGGER = LoggerFactory.getLogger(AddProductController.class);

    @PostMapping("/ajax/json/product/add")
    public ShoppingCart addProductToCart(HttpServletRequest req,
                                 @RequestParam(name = "idProduct") String idProduct,
                                 @RequestParam(name = "count") String count)  {

        ProductForm productForm = createProductForm(idProduct, count); 
        ShoppingCart shoppingCart = SessionUtil.getCurrentShoppingCart(req); // Get ShoppingCart
        orderService.addProductToShoppingCart(productForm, shoppingCart); // Add product in Cart
        return shoppingCart;
    }

Ajax request:

var addProductToCart = function (){
        var idProduct = $('#addProductPopup').attr('data-id-product');
        var count = $('#addProductPopup .count').val();
        var btn = $('#addToCart');
        convertButtonToLoader(btn, 'btn-primary');
        $.ajax({
            url : '/ajax/json/product/add',
            method : 'POST',
            data: {
                idProduct : idProduct,
                count : count
            },
            success : function(data) {
                $('#currentShoppingCart .total-count').text(data.totalCount);
                $('#currentShoppingCart .total-cost').text(data.totalCost);
                $('#currentShoppingCart').removeClass('hidden');
                convertLoaderToButton(btn, 'btn-primary', addProductToCart);
                $('#addProductPopup').modal('hide');
            },
            error : function(xhr) {
                convertLoaderToButton(btn, 'btn-primary', addProductToCart);
                if (xhr.status == 400) {
                    alert(xhr.responseJSON.message);
                } else {
                    alert('Не сработала JS функция добавления в коризну');
                }
            }
        });
    };   

Whats wrong with my PostController?

  • 写回答

2条回答 默认 最新

  • 程序go 2020-03-26 05:47
    关注

    Change your ajax like below. You do not need to send data because you are not expecting data in body in your post controller.

    $.ajax({
                url : '/ajax/json/product/add?idProduct='+idProduct+'&count='+count,
                method : 'POST',
                success : function(data) {
                    $('#currentShoppingCart .total-count').text(data.totalCount);
                    $('#currentShoppingCart .total-cost').text(data.totalCost);
                    $('#currentShoppingCart').removeClass('hidden');
                    convertLoaderToButton(btn, 'btn-primary', addProductToCart);
                    $('#addProductPopup').modal('hide');
                },
                error : function(xhr) {
                    convertLoaderToButton(btn, 'btn-primary', addProductToCart);
                    if (xhr.status == 400) {
                        alert(xhr.responseJSON.message);
                    } else {
                        alert('Не сработала JS функция добавления в коризну');
                    }
                }
            });
    
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大