Javascript 为什么我会得到;获得;从IE11.0客户端发布数据时的方法信息?

Javascript 为什么我会得到;获得;从IE11.0客户端发布数据时的方法信息?,javascript,android,jquery,html,nanohttpd,Javascript,Android,Jquery,Html,Nanohttpd,我在Android应用程序中使用NanoHTTPD作为web服务器,我使用客户端中的函数SubmitCheckedItemsForm()提交一些日期 在web服务器客户端,当我在FireFox和Chrome中访问代码时,我可以接收“POST”方法信息, 但是当我在IE 11.0中访问代码时,我会收到“GET”方法信息?为什么? 服务器代码 @Override public Response serve(IHTTPSession session) { String uri = session.

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

在web服务器客户端,当我在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();
}
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();
}
函数SubmitCheckedItemsForm(操作){
var mytemp=GetArrayOfCheckedItems();
变量formID=“#FormForAction”;
$(formID)。解除绑定(“提交”);
警报(mytemp);
$(formID).submit(函数(eventObj){
$(formID).empty();
$('').attr('类型','隐藏')
.attr('name',action)
.attr('value',JSON.stringify(mytemp))
.附录(formID);
});
$(.FilenameCheckboxForSelect”).prop(“选中”,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);
    });

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

    $(formID).submit();
}
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();
}
函数SubmitCheckedItemsForm(操作){
var mytemp=GetArrayOfCheckedItems();
变量formID=“#FormForAction”;
$(formID)。解除绑定(“提交”);
警报(mytemp);
$(formID).submit(函数(eventObj){
$(formID).empty();
$('').attr('类型','隐藏')
.attr('name',action)
.attr('value',JSON.stringify(mytemp))
.附录(formID);
$('Body')。附录(formID);
});
$(.FilenameCheckboxForSelect”).prop(“选中”,false);
$(formID.submit();
}

我终于发现了这一点。当您在Internet Explorer 11中使用浏览器发送HTTP POST请求时。如果发送HTTP POST请求时没有消息体,则使用GET方法。这是一个浏览器问题。您也可以在Microsoft支持页面上查看它。这里:

这不是你的代码问题,而是浏览器的问题。如果您想尝试,可以尝试以下方法:

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

工具->互联网选项->安全->互联网/本地Intranet->取消选中“启用受保护模式”选项。 如果能解决问题,就试试这个

示例代码:

<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> 

名字:
姓氏:

您能分享结果的快照吗?谢谢!对于Astha Srivastava:我使用Utility.LogError(“Method:+Method”)获取结果我确信我在IE 11.0中获得了“get”方法,在Firefox和ChromeThanks中都获得了“POST”方法!我可以在我的代码中添加一些消息体来解决这个问题吗?谢谢!但在我的javascript代码中添加$('Body').appendTo(formID)之后,我仍然得到了“get”方法。你可以在我的ASKHow上查看我可以添加“消息体”吗?不幸的是,我在添加代码姓氏后仍然得到“get”方法:看来JSON.stringify()在IE 11.0中不能很好地工作