【问题标题】:How to return an HTTP response in Javascript?如何在 Javascript 中返回 HTTP 响应?
【发布时间】:2018-08-06 00:31:54
【问题描述】:
我有一个看起来像这样的弹出横幅:
if (confirm("Banner message")) {
//do something if they accept
}
else {
//do something else if they don't accept
}
如果用户不接受,我想返回一个 403 Forbidden,最好是通过我的 httpd 日志获取的方式。最简单的方法是什么?
【问题讨论】:
标签:
javascript
http-error
【解决方案1】:
confirm 是 JavaScript 的扩展,由运行在客户端的网页中的浏览器提供给 JS。
您不能(直接)发送 HTTP 响应来响应它,因为它在 HTTP 客户端中运行。
如果您想在服务器日志中记录某些内容,则需要向服务器发出 HTTP 请求。
这通常使用fetch 或XMLHttpRequest API 来完成。如果您希望向用户显示标准的 403 禁止错误,则可以为 location 分配一个 URL,您的服务器将返回 403。
【解决方案2】:
由于您需要 403 响应,因此您需要从服务器请求此响应,因为它是服务器发送的错误消息。我建议您使用 window.location = "/someSpecialPath"; 并使用 .htacces 或该路径的其他内容生成 403 错误:
deny from all