gpt4 book ai didi

JavaScript:是否可以处理来自 `form.submit()` 的服务器错误?

转载 作者:行者123 更新时间:2023-11-28 01:05:45 26 4
gpt4 key购买 nike

我通常使用 Ajax 进行表单提交,但有一种情况是不可能的。这种特殊的形式必须触发从服务器下载文件,并且浏览器必须生成一个“另存为”对话框。我必须用旧的方式(我认为)来完成此操作,即提交返回附件的表单。

为此,我使用 JavaScript 创建一个表单:

   var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "/cgi-bin/myprog");
...create and append lots of input elements, and then
form.submit();

这工作正常,直到服务器必须返回错误。例如,如果服务器返回 403 Forbidden,则浏览器仅显示空白页面并尝试重定向到 /cgi-bin/myprog

有没有办法用submit()处理错误? W3C spec似乎只是说用户代理应该呈现来自HTTP“get”和“post”事务的响应。 HTMLFormElement spec没有说任何有关错误的信息。我控制服务器,并且可以更改响应,因此我可能会返回 200 OK 并带有错误消息,但必须有更好的方法来做到这一点。

最佳答案

基本上是不可能的,所以你必须提前检查是否下载成功。就我而言,我只需要检查用户是否有权访问该文件。

我通过向服务器发送单独的 Ajax 请求来处理此问题,如果用户获得授权,该请求将返回成功 (200),否则返回失败(403 或其他) )。如果返回成功(即 .alwaystextStatus 参数为 success),那么我将按上述方式构造并提交表单。

关于JavaScript:是否可以处理来自 `form.submit()` 的服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25097323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com