浏览器发送GET而不是POST
Browser sends GET instead of POST
我有一个javascript函数,它以普通html表单的方式发送post请求
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-submit,所以我不必显式地用javascript应用重定向。
在大多数浏览器中,此函数可以实现我所期望的功能。然而,在某些情况下,情况并非如此。出于某种原因,它发送GET请求。我还没有设法复制它,但是日志服务从用户代理显示浏览器是Safari8.0或Android网络工具包浏览器。也许还有其他一些,但我没有全部检查。
以下是问题:1.这种方法可能有什么问题?2.是否有其他方法可以用javascript实现标准的表单提交行为?也许使用$.ajax()函数?
是的,使用$.ajax()
甚至$.post()会更好、更安全。如果你想用js发布数据,没有理由用HTML表单。
相关文章:
- AJAX请求php获取post/get发送的指定目录中服务器上的文件列表(无JQUERY)
- Post/Get handler in Jquery/Javascript
- jquery ajax simple post/get
- app.get and app.post get value in node.js
- 我们可以将jquery POST/GET回调函数的数据和状态保存在变量中以供进一步使用吗?
- 如何在post/get中获取多选下拉值的所有选定值
- javascript ajax post/get从一个html javascript到另一个
- 如何在没有POST/GET/FORM的情况下在onclick事件HTML中设置PHP会话
- 理解AJAX与post/get语义之间的区别
- 当调用ajax POST/GET时,我可以使用一个函数来创建新的php页面吗
- HTTP POST/GET请求到PHP脚本和JSON响应
- Http post/get动态动作url
- Chrome POST/GET数据影响内联JavaScript
- 我怎么能发送值和文本下拉到另一个页面使用POST/GET
- 用AJAX请求发送POST, GET和COOKIE数据
- 我如何使我的PHP API返回JSON到Javascript HTTP POST/GET请求
- 只有发送post/get,如果表单值已经改变
- 跨子域Post/get请求与PHP会话
- 从Javascript和Mithril.JS中使用asp.net web服务- post /get请求的最佳方法/库是什
- 从 GET 到 AJAX post/get 的购物车系统