Firefox重写了GET请求

时间:2012-12-11 03:44:45

标签: java html google-chrome firefox nanohttpd

背景:我有一个Java webserver类(NanoHTTPD),我的应用程序通过添加会话,页面模板,身份验证和动态内容来扩展。我想让应用程序自包含,而不是依赖SQLite。它只能在安装了Java和SQLite的情况下运行。

现在我的问题。我正在测试一个只有Logout链接的简单索引页面。如果用户在未登录的情况下转到索引,则会将HTTP重定向到“登录”页面。当他们POST凭证并进行验证时,它会将它们返回到索引页面。如果单击Firefox中的Logout链接,我的应用程序只会收到索引的URI(' /')。在Chrome中执行相同的过程后,它会按预期将用户注销。我不会在任何时候修改GET URL;我只运行uri.equals(" / logout /")。有没有理由说Firefox会以不同的方式解释这个链接?

登录HTML:

    <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
    <html>
      <head>
        <title>Login</title>
      </head>
      <body>
        <h1>Login</h1>
        <div>
          <p></p>
          <form method="post" action="/login/">
            <table>
              <tr>
                <td>
                  <label for="username">Username</label>
                  <input type="text" name="username" id="username" maxlength="100" />
                </td>
                <td>
                  <label for="password">Password</label>
                  <input type="password" name="password" id="password" />
                </td>
                <td></td>
                <td>
                  <input type="submit" value="Sign In" />
                </td>
              </tr>
            </table>
          </form>
        </div>
      </body>
    </html>

索引HTML:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
      <head>
        <title>Index</title>
      </head>
      <body>
        <h1>Index</h1>
        <a href="/logout/">Logout</a>
      </body>
    </html>

匹配网址的代码只是.equals(),之前运行的唯一代码是位于此处的NanoHTTPD:https://github.com/elonen/nanohttpd/blob/master/NanoHTTPD.java

还有一件事,我已经创建了一个页面,#34; test.html&#34;,我从上面复制了源代码。 Firefox也无法正确处理它并保留在页面上而不会出现“找不到文件”错误。此外,如果我将页面更改为使用&#34; / logout1 /&#34;,一切正常。

0 个答案:

没有答案