Cross-Origin Resource Sharing (CORS) 是一个安全机制,用于限制网页代码访问其他域中资源的机制。如果前端开发人员需要在网页中访问其他域名下的资源,就需要使用 CORS 进行设置。在 Hapi.js 中,可以使用插件 hapi-cors 来进行处理。
安装 hapi-cors 插件
首先,需要安装 hapi-cors 插件,可以使用 npm 进行安装:
npm install hapi-cors
安装完成后,在 Hapi.js 应用程序中引入该插件:
-- -------------------- ---- ------- ----- ---- - ---------------------- ----- -------- - --------------------- ----- ---- - ----- -- -- - ----- ------ - ------------- ----- ----- ----- ----------- --- ----- ----------------- ------- --------- -------- -- --- -- --- -- -------
配置 hapi-cors
在引入 hapiCors 后,需要进行一些配置才能使其正常工作。可以使用以下选项进行配置:
- origins:允许访问的域名,可以是字符串或字符串数组。设置为
['*']
表示允许所有域名访问。 - methods:允许访问的 HTTP 方法,可以是字符串或字符串数组。默认值为
'GET,HEAD,PUT,PATCH,POST,DELETE'
。 - headers:允许访问的 HTTP 头部信息,可以是字符串或字符串数组。默认值为
'Authorization,Content-Type,If-None-Match'
。
以下是使用默认选项设置的示例代码:
await server.register({ plugin: hapiCors, options: { origins: ['*'], methods: ['GET,HEAD,PUT,PATCH,POST,DELETE'], headers: ['Authorization,Content-Type,If-None-Match'] } });
使用 hapi-cors
应用程序使用 hapi-cors 插件后,它会自动处理跨域请求。例如,以下代码能够允许使用 XMLHttpRequest 或 fetch API 调用 API:
server.route({ method: 'GET', path: '/api', handler: (request, h) => { return 'Hello World!'; } });
在客户端代码中,可以这样访问该 API:
-- -------------------- ---- ------- ---------------------------------- - ------- ------ -------- - --------------- ------------------- ---------------- ------- - - ----- - -- -------------- -- ---------------- ---------- -- ------------------ ------------ -- ----------------------
总结
hapi-cors 插件能够使 Hapi.js 应用程序支持 CORS,它提供了允许访问的域名、允许访问的 HTTP 方法和允许访问的 HTTP 头部信息等选项。它使前端开发人员更容易地进行跨域访问,从而提高了 Web 应用程序的灵活性和可扩展性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64509220980a9b385b990f3a