我在我的 Android APP 中使用 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();
}
修改后的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
关于javascript - 为什么我从IE 11.0 客户端发布数据时得到 "GET"方法信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362804/