我正在使用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并发送常规发布请求来完成。
答案 0 :(得分:1)
有两种方法可以做到这一点:
使用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 - 这将导致它在浏览器中打开 - 或者上面的错误的代码。