首页 > 解决方案 > 由于这个问题,我是否必须更改我的 Web 应用程序结构?

问题描述

我正在使用表单基本身份验证,登录过程运行良好。

登录和错误页面都是 index.jsp,我确实有另一个调用页面本身的 post 方法,但是当尝试从 jquery ajax 数据参数中读取参数时,返回 null 值。

如果参数是在 url 旁边发送或使用标头发送的,我可以读取参数,例如:

$.ajax({
    type: "POST",
    url: "/?data=data", // Ok
    headers: {xdata: data}, // Ok
    data: {fail: "data"}, // fails

这是 index.jsp 中用于读取参数的代码:

if (request.getMethod().equalsIgnoreCase("post")) {
    System.out.prinltn("data from url "
        + request.getParameter("data")); // parameter is printed
    System.out.prinltn("data from header: "
        + request.getHeader("xdata")); // parameter is printed
    System.out.prinltn("data from fail: "
        + request.getParameter("fail")); // null is printed here
    return;
}

所有资源都在 web.xml 中得到保护,这就是事情变得有趣的地方:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/*</url-pattern>

如果将模式更改为例如 <url-pattern>/other/*</url-pattern>,则会打印失败参数!。那么,有没有办法在不更改 web.xml 中的 url-pattern 的情况下将数据发布到 index.jsp 并使事情正常工作?

标签: javajquerywildfly

解决方案


推荐阅读