为什么我从 IE 11.0 客户端 post 获取数据时得到 "GET" 方法信息?

Why do I get "GET" method information when I post a data from IE 11.0 client?

我在我的 Android 应用程序中使用 NanoHTTPD 作为 Web 服务器,我在客户端中使用 SubmitCheckedItemsForm() 函数提交一些日期。

在网络服务器客户端,当我在 FireFox 和 Chrome 中启动代码时,我可以收到 "POST" 方法信息, 但是我在 IE 11.0 中启动代码时收到 "GET" 方法信息?为什么?

服务器代码

@Override
public Response serve(IHTTPSession session) {
  String uri = session.getUri();
  Method method = session.getMethod();
  Utility.LogError("Method: "+method);
}

HTML

<form action="" method='post' enctype='multipart/form-data' id="FormForAction">
</form>

JS

function SubmitCheckedItemsForm(action) {

    var mytemp = GetArrayOfCheckedItems();
    var formID = "#FormForAction";

    $(formID).unbind("submit");

    alert(mytemp);

    $(formID).submit(function (eventObj) {

        $(formID).empty(); 

        $('<input />').attr('type', 'hidden')
           .attr('name', action)
           .attr('value', JSON.stringify(mytemp))
           .appendTo(formID);
    });

    $(".FilenameCheckboxForSelect").prop("checked", false);

    $(formID).submit();
}

修改后的JS

function SubmitCheckedItemsForm(action) {

    var mytemp = GetArrayOfCheckedItems();
    var formID = "#FormForAction";

    $(formID).unbind("submit");

    alert(mytemp);

    $(formID).submit(function (eventObj) {

        $(formID).empty(); 

        $('<input />').attr('type', 'hidden')
           .attr('name', action)
           .attr('value', JSON.stringify(mytemp))
           .appendTo(formID);

        $('<div>Body</div>').appendTo(formID);
    });

    $(".FilenameCheckboxForSelect").prop("checked", false);

    $(formID).submit();
}

我终于知道了。当您在 Internet Explorer 11 中使用浏览器发送 HTTP POST 请求时。当发送没有消息正文的 HTTP POST 请求时,将使用 GET 方法。这是一个浏览器问题。您也可以在 Microsoft 支持页面上查看它。这里:issue with Form method attribute

那不是你的代码问题,而是浏览器的问题。如果你想尝试,你可以试试这个:

IE中有一个Enabling/Disabling保护模式的选项,这个选项默认为“Internet”区域和“本地Intranet”区域(或其中任何一个)启用。在这两个地方禁用可能会解决问题。

工具 -> Internet 选项 -> 安全 -> Internet/Local Intranet -> 取消选中 "Enable protected mode" 选项。 如果它解决了问题,请尝试一下。

示例代码:

<form action="your_action_page" method="post" enctype='multipart/form-data' id="FormForAction">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit"> 
</form>