0

GET我有一项服务,它通过基于输入参数的 ReST 资源的形式生成 PDF 文档。这些条目中的一些映射到请求路径,而其他条目映射到可选请求参数,因此以下说明了 ReST 资源。

/api/invoices/{invoiceNumber}?format={format}

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

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

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

4

1 回答 1

0

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

我会做的是提交表单

  • 打开一个带有备用操作的新窗口,例如 fileShowAction,并将您的静态 URL 作为参数传递
  • 让新窗口通过 JQuery 或其他表单提交 URL
  • 如果出现错误,您可以使用 OK 或计时器显示错误以关闭窗口

选项 2

在带有 IFrame 的 JQuery 内联对话框中显示文件

选项 3

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

于 2013-04-19T06:55:57.227 回答