request.getParameter()使用常规JS返回null,但适用于jQuery

时间:2018-04-05 06:41:52

标签: javascript java jquery ajax jsp

以下是正在运行的jQuery版本:

var button = $('#a');
var output = $('#output');

var data = {
  colors: ['red', 'blue', 'green']
};

button.click(function(event) {
  $.ajax({
    url: "handler.jsp",
    type: "POST",
    data: data,
    success: function(data) {
      output.html(data);
    }
  });
});

这是一个不起作用的香草JS版本:

var button = document.querySelector('#a');
var output = document.querySelector('#output');

var data = {
  colors: ['red', 'blue', 'green']
};

button.onclick = function() {
  var request = {
    method: 'POST',
    body: JSON.stringify(data)
  };

  fetch('handler.jsp', request)
    .then(function(response) { 
      return response.text();
    })
    .then(function(text) {
      output.innerHTML = text;
    });
};

Java代码:

<%
String[] colors = request.getParameterValues("colors[]");
%>

<p><%= colors[0] %></p>

在这两种情况下,请求/响应都有效,但是使用vanilla JS的响应会返回

<p>null</p> 

jQuery版本返回

<p>red</p> 

vanilla JS版本有什么问题?

0 个答案:

没有答案