首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在提交表单以下载二进制ReST资源时,如何更好地处理这些错误?

在提交表单以下载二进制ReST资源时,如何更好地处理这些错误?
EN

Stack Overflow用户
提问于 2013-04-19 14:17:06
回答 1查看 56关注 0票数 0

我有一个服务,它可以根据输入参数通过表单生成一个PDF文档,其中的GET是一个ReST资源。其中一些条目映射到请求路径,其他条目映射到可选的请求参数,如下所示说明了ReST资源。

代码语言:javascript
复制
/api/invoices/{invoiceNumber}?format={format}

在表单提交时,我会重写form上的action以匹配资源URI。但是如果发票号不存在,资源将根据任何错误条件返回404或任何其他所需的错误代码。

我可以通过在页面上设置错误消息来修复此问题,但由于表单target_blank以打开一个新窗口,因此表单将重新显示在目标窗口中,并显示正确的错误消息,但表单当然是空白的。

我更希望通过异步ajax请求来处理文档,该请求可以检测和适当地处理任何错误消息/条件,但我不确定这是否可行(使用jQuery)。

EN

回答 1

Stack Overflow用户

发布于 2013-04-19 14:55:57

我不认为有条件地打开窗口是可能的,因为此时您已经将内容下载到父窗口中。使用JQuery可以做到这一点,但通常情况下,在窗口之间发送内容既麻烦又脆弱。

我要做的是在表单提交上

  • 使用替代操作(如fileShowAction )打开一个新窗口,并将restful风格的网址作为参数传递
  • 让新窗口通过JQuery或另一个表单
  • 提交网址如果出现错误,可使用确定或计时器显示错误以关闭window

选项2

使用IFrame在JQuery内联对话框中显示文件

选项3

让您的初始REST调用要么返回带有错误的HTML等,要么重定向到文件位置。还有其他几种使用REST语义的替代方案,例如,使用Location头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16098427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档