检测html表单是成功还是错误

时间:2015-01-09 20:15:07

标签: javascript jquery

我正在使用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并发送常规发布请求来完成。

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点:

  1. 使用Ajax提交帖子

  2. 使用iframe,其中iframe返回一些调用父方法的javascript代码

  3. 对于第二种选择,您需要将表单的目标设置为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,可以通过两种方式执行此操作:

    1. 让响应JavaScript在新窗口中打开PDF

    2. 如果它将PDF作为页面数据返回,请使用服务器端代码成功返回PDF - 这将导致它在浏览器中打开 - 或者上面的错误的代码。