表单提交与Javascript POST请求
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了表单提交与Javascript POST请求,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1258字,纯文字阅读大概需要2分钟。
内容图文
![表单提交与Javascript POST请求](/upload/InfoBanner/zyjiaocheng/686/3e4d3bd1666f4191a881e284e6ec8066.jpg)
我正在用非常简单的HTML表单发出POST请求.该请求以表单格式失败,但是可以在Javascript中使用.
这非常简单,因此几乎是完整的表格:
<form method="post" action="[apiUrl]" target="_blank">
<input type="hidden" name="payload" value="[payload]">
<!-- ... -->
</form>
*请注意[apiUrl]和[payload]是注入HTML的变量.
该请求失败,并显示来自API的自定义消息(似乎无法解析有效负载):
{
"Error": {
"Message": "Noun and Verb are Required Request Parameters",
"ValidationError": false
},
"Result": "ERROR"
}
但是,当用Javascript执行时,完全相同的请求将成功(我已经使用Axios和jQuery以及Paw进行了测试).
$.post(this.apiUrl, this.payload, response => {
console.log('Success!', response);
});
有效载荷只是一个Javascript对象.变量设置如下:
this.apiUrl = request.url;
this.payload = JSON.stringify(request.parameters);
为什么它会失败?
解决方法:
当我使用JSON API分别构建后端(使用Node& Express.js)和前端(Angular.js)时,遇到了类似的问题.花了12个小时才找到不使用html表单的原因.
问题出在后端,当您使用jquery $.post提交时,Content-type为application / json,但是当您使用html表单提交时,Content-type为application / form-data.
如果选择内容类型作为api的表单数据,则可以使用邮递员测试API.
因此,要解决此问题,您必须重建后端api以使其与Content-type application / form-data兼容.
另外,在我的案例中,我使用了body-parser节点包来分析表单数据.
内容总结
以上是互联网集市为您收集整理的表单提交与Javascript POST请求全部内容,希望文章能够帮你解决表单提交与Javascript POST请求所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。