【发布时间】:2015-11-24 12:58:54
【问题描述】:
我有一个 javascript 函数以普通 html 表单的方式发送帖子请求。下面是函数实现:
function sendDirectPost(uri, data) {
var $form = $('<form action="' + withContext(uri) + '" method="POST"></form>');
appendDataToForm($form, data);
$form.submit();
}
function appendDataToForm($form, data) {
var body = $('body');
_.each(data, function (value, key) {
$form.append($('<input type="hidden">')
.attr('name', key)
.attr('value', value));
});
$form.css('display', 'none');
$form.appendTo(body);
return $form;
}
目的是用javascript模拟纯表单post提交,所以我不必显式地用javascript应用重定向。
在大多数浏览器中,此功能符合我的预期。但是在某些情况下它不会。出于某种原因,它发送 GET 请求。我还没有设法重现它,但是日志服务从用户代理显示浏览器是 Safari 8.0 或 Android Web Kit 浏览器。也许还有一些其他的,但我没有检查所有。
以下是问题: 1. 这种方法可能有什么问题? 2. 还有其他方法可以用javascript实现标准的表单提交行为吗?也许使用 $.ajax() 函数?
【问题讨论】:
标签: javascript android jquery ajax http