0

我有一个问题,当我通过 javascript 发送帖子数据时,HttpRequestHandler 没有收到任何数据。我想接收内容的价值,但它不起作用。这是javascript代码:

function utils_saveElementAndGetId(url,content) {
var xhr = new XMLHttpRequest()

xhr.open("post", url, false);
xhr.send(content);

if (xhr.status != 200) {
    alert(xhr.status + ': ' + xhr.statusText)
} else {
    return xhr.responseText
}
}

这是 HttpRequestHandler 的代码:

  public class HeaderServlet implements HttpRequestHandler {
private static final Logger log = LoggerFactory.getLogger(HeaderServlet.class);

TemplateDao templateDao;
HeaderElementDao headerElementDao;
CheckboxElementDao checkboxElementDao;

@Autowired
public HeaderServlet(TemplateDao templateDao, HeaderElementDao headerElementDao, CheckboxElementDao checkboxElementDao) {
    this.templateDao = templateDao;
    this.headerElementDao = headerElementDao;
    this.checkboxElementDao = checkboxElementDao;
}

public void handleRequest(HttpServletRequest req,
                          HttpServletResponse resp)
        throws ServletException, IOException {

    String content = req.getParameter("content");
    HeaderElement headerElement = new HeaderElement(content);

    Long templateId = (Long) req.getSession().getAttribute("id");
    Template template = templateDao.get(templateId);
    headerElement.template = template;
    headerElementDao.create(headerElement);

    template.headerElements.add(headerElement);
    templateDao.saveOrUpdate(template);


    resp.setStatus(200);
    resp.setContentType("text/plain");
    resp.getOutputStream().println(headerElement.getId());
    resp.flushBuffer();
}
}
4

1 回答 1

0

我已经解决了这个问题,问题出在 javascript 方面,我刚刚忘记添加 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

于 2017-09-30T07:54:32.383 回答