首页 > 解决方案 > 节点 JS REST Api 使用部分工作的 CORS 限制来源。如何阻止直接请求?

问题描述

我有一个与 Node JS Api 交谈的 React 应用程序。我希望 React App 访问 Api。为了实现这一点,我在 Node Api 中实现了 CORS:

app.use(cors({
  origin: 'http://localhost:3000'
}));

使用这种方法有效。作为否定测试,我将端口号更改为 4000,它阻止了来自 React 应用程序的请求。都好!

但是,我可以将 url 带到 Node JS Api 并放入浏览器以发出 GET 请求,它不会被阻止。我还使用 Postman 访问 Api,它没有阻止请求。

我的 API 的本地 URL:

http://localhost:9000/resultSummary?studyId=1000

如何阻止对 Node JS Api 的直接调用?

标签: javascriptnode.jsreactjsrestcors

解决方案


CORS 仅由浏览器实现。它将通过确保您的域不会被带有恶意 JavaScript 代码的其他域访问来保护您的用户。如果用户决定自己发出请求,他仍然可以自由地请求您的 API,因为它是公开的。


推荐阅读