我使用$('#myForm').submit
提交表单我的其余服务接受application/x-www-form-urlencoded
的内容类型,但是当使用submit()时,我无法在浏览器开发人员工具中的XHR选项卡中看到请求,并且表单参数doesn没有到达Rest服务,我可以使用AJAX post和指定内容类型,但Rest服务产生八位字节流,换句话说,响应包含一个可下载的文件csv/pdf,可以正确提交表单的解决方案是什么?JQuery提交表单参数为空
1
A
回答
1
为什么你不使用$ .ajax()类型为“post”?您可以设置页眉容易有
// Request with custom header
$.ajax({
url: 'foo/bar',
type: 'post',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: {}, // object of your data
success: function(response){
alert(response)
}
});
如果您的API响应是字节流或下载的文件,那么你必须创建虚拟的形式,并通过jQuery的张贴,因为通过AJAX是无法下载文件。当文件是当前页面的下载内容将保持相同的事件表单发布。
function autoGenerateAndSubmitForm(method, url, post_data) {
var element = document.getElementById("virtual_form");
if(element != null)
{
element.parentNode.removeChild(element);
}
var form = document.createElement("form");
form.setAttribute("id", "virtual_form");
form.setAttribute("style", "display:none;");
//form.setAttribute("target", "_blank"); // remove comment if you want to open it in new tab
form.method = method;
form.action = url;
for(i in post_data)
{
var element=document.createElement("input");
element.value=post_data[i];
element.name=i;
form.appendChild(element);
}
document.body.appendChild(form);
form.submit();
form.parentNode.removeChild(form);
}
拨打以下功能与波普尔的论点
autoGenerateAndSubmitForm('POST','your_url',{your_post_data_object:"Here"});
0
通常读你的修改问题,如果该参数是它可以通过以下方面引起的API空后。
- 形式不正确序列化
- 指定的内容类型是不是你的API是当你正在使用AJAX确保您的形式不指定任何动作和方法,否则有可能是一个问题接受
- 。
- API预期的模型与表单提交的模型不匹配
- 使用Ajax时,将按钮类型更改为“按钮”而不是“提交”。
相关问题
- 1. jQuery表单提交参数检查
- 2. angularjs表单提交数据为空
- 3. 提交表单作为对象参数
- 4. 表单提交空
- 5. 使用JQuery AJAX向PHP提交表单,返回数据为空
- 6. Jquery表单向Mysql提交空值
- 7. jquery表单提交空白值
- 8. jQuery Ajax表单提交,空返回
- 9. 表单(使用jquery)提交空值
- 10. jQuery表单提交
- 11. jquery表单提交
- 12. jQuery提交表单
- 13. jquery表单提交
- 14. jquery表单提交
- 15. jQuery - 表单提交
- 16. JQuery提交表单
- 17. JQuery - 表单提交
- 18. jQuery表单提交
- 19. Jquery表单提交
- 20. 表提交为空
- 21. Portlet表单提交后字段为空
- 22. 当提交表单时(MVC3)DropdownList为空
- 23. ViewModel在表单提交时为空
- 24. $ _FILES表单提交后为空
- 25. 表单提交时模型为空
- 26. 提交表单后POST值变为空
- 27. 提交表单时$ _POST为空
- 28. $ _post在提交表单后仍为空
- 29. 表单提交后选择值为空
- 30. 提交表单问题:TypeError:this.form为空
是的,与ajax后参数到达其余服务,但我的休息服务返回八位字节流,所以ajax错误抛出,因为它不能处理这种类型 – Donatas
你可以发布API响应,或在响应它是下载文件? –
是的,它是下载文件,更确切地说是csv/pdf。 – Donatas