我正在使用jquery向我的后端提交一个post请求,该请求返回一个pdf。我想知道是否有一种方法可以检测后端的错误和成功响应。
我使用以下方法创建了表单:
form = $document.createElement("form")).attr({"method":"POST", "action":"myurl"});
$(document.createElement('input')).attr({'type': 'hidden', 'name': 'data', 'value': data}).appendTo(form);
form.appendTo( document.body ).submit()
如何更改此设置以在仍然使用表单提交的同时进行成功回调或错误回调,因为我知道这可以使用 $.ajax 并发送常规发布请求来完成。
最佳答案
有两种方法可以做到这一点:
使用 Ajax 提交帖子
使用 iframe,其中 iframe 返回一些调用父方法的 JavaScript 代码
对于第二个选择,您需要将表单的目标设置为 iframe 的名称:
form.target = myIframe.getAttribute( "name" );
然后它将被提交到该 iframe(您可以通过 JavaScript 创建并放入文档中)。
然后,iframe 应返回一个 HTML 页面,其中包含调用父框架方法的 javascript:
...include all the regular HTML code...
<script>
window.parent.MyResponseHandler.response( "ok" );
</script>
在父框架中,您需要创建该处理程序:
var MyResponseHandler = {
response: function(res) {
alert( res );
}
}
编辑:如果您想在回复时返回 PDF,可以通过两种方式执行此操作:
让响应 JavaScript 在新窗口中打开 PDF
如果它返回 PDF 作为页面数据,请使用服务器端代码在成功时返回 PDF - 这将导致它在浏览器中打开 - 或使用上面的代码返回错误。
关于javascript - 检测 html 表单是否成功或错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27868503/