weixin_33676492 2016-02-18 16:57 采纳率: 0%
浏览 718

为什么过滤器在Ajax请求中不起作用?

在我们的应用程序中有一个XSS过滤器,该过滤器可以处理每个请求并检查值。但是我们发现了一种情况,即我们的过滤器在请求是Ajax时不起作用。

像这样完成AJAX请求时,它不起作用:

$.ajax({
            url:         '${someUrl}' ,
            type:        'POST',
            cache:        false,
            data:        JSON.stringify(checkForm),
            dataType:    'json',
            contentType: 'application/json',

此处的值采用JSON格式,如下所示:

{"poNumber":"123144","voucher":"","quoteNumber":"","collectNumber":"","otherCarrier":"","deliveryMethodCode":"21","paymentMethodCode":"invoice","concerns":""}

在以下情况下有效:

ACC.pg = {
    addToCart: function() {
        var productCode = $(this).data("productcode");
        var params = {
            "productCodePost": productCode,
            "qty": 1
        };
        $.post("${url}", params, ACC.quickordercustom.handleSuccess);

qty=1&productCodePost=12123

过滤器从请求中获取参数,例如:

  Map<String,String[]> params = req.getParameterMap();
  for (Map.Entry<String,String[]> entry : params.entrySet()) {
    String v[] = entry.getValue();
    ....
  }

但是对于案例1中req.getParameterMap()为空这一点,有什么建议吗?

  • 写回答

3条回答 默认 最新

  • weixin_33725239 2016-02-18 17:01
    关注

    The parameters of a servlet request are populated from URL parameters and - in case of a POST request with content-type application/x-www-form-urlencoded - from the parsed request body.

    Since you are sending a JSON payload in case 1, the parameter map is empty.

    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办