【发布时间】:2018-06-17 18:22:58
【问题描述】:
我使用 react 作为前端,express/next.js 作为后端/api。他们通过 GET/POST 请求和 JSON 数据响应“交流”。每次站点在服务器端呈现时,chrome 调试器中都没有 api 数据。但是当用户通过页面路由客户端时 - 它调用 api 客户端,您可以看到来自 api (mongoDB) 的所有数据。我一直想知道是否可以对用户隐藏 JSON 数据。我有一个餐厅网站,它以 JSON 数据获取许多餐厅的数据,所以就像将 mongodb 的数据发布给客户端一样。
在使用 react 或其他框架的流行网站上,我在 chrome 调试器中看不到 api 数据。
我有一个网站,用户可以在其中设置一些过滤器,然后转到显示过滤餐厅的结果网站。那么如何始终发送 api 调用服务器端呢?
【问题讨论】:
-
没有。你无法隐藏它。您的客户端通过 Ajax 调用从服务器请求的任何内容都可供任何人(具有少量技术知识)查看。如果您不希望看到该 JSON 数据,则必须以不同的方式设计您的应用程序,而不是像这样从您的服务器请求它。也许你会做服务器端渲染,所以只有 HTML 到达客户端。
-
您无法隐藏请求,但如果您真的愿意,可以加密数据。不过,我不明白这一点,如果服务器正在向用户发送一些数据,那么该用户应该能够观察到该数据。如果不是,为什么服务器会发送它?
-
不要发送您不希望客户拥有完全且不受限制的访问权限的客户数据。
标签: javascript reactjs express backend next.js