在我们的应用程序中有一个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()为空这一点,有什么建议吗?