如何在 Javascript 中 return HTTP 响应?

How to return an HTTP response in Javascript?

我有一个看起来像这样的弹出式横幅:

if (confirm("Banner message")) {
  //do something if they accept
}
else {
  //do something else if they don't accept
}

如果用户不接受,我想 return 一个 403 Forbidden,最好是以一种能被我的 httpd 日志记录的方式。最简单的方法是什么?

confirm 是 JavaScript 的扩展,由在网页中运行 client-side 的浏览器提供给 JS。

您不能(直接)发送 HTTP 响应以响应它,因为它是 运行 在 HTTP 客户端.

如果您想在服务器日志中记录一些内容,则需要向您的服务器发出 HTTP 请求

这通常使用 fetchXMLHttpRequest API 来完成。如果您希望向用户显示标准的 403 禁止错误,那么您可以将 URL 分配给 location,您的服务器将 return 改为 403。

由于您需要 403 响应,因此需要从服务器请求此响应,因为这是服务器发送的错误消息。我建议您使用 window.location = "/someSpecialPath"; 并使用 .htacces 或该路径的其他内容产生 403 错误: deny from all