在hapijs 17.2中,要为所有路由添加cors支持,可以按照以下步骤进行操作:
npm install hapi-cors
const Hapi = require('hapi');
const HapiCors = require('hapi-cors');
const server = Hapi.server({
port: 3000,
host: 'localhost'
});
const init = async () => {
await server.register({
plugin: HapiCors,
options: {
origins: ['*'], // 设置允许的跨域请求源,可以是具体的域名或通配符'*'
methods: ['GET', 'POST', 'PUT', 'DELETE'], // 设置允许的请求方法
headers: ['Accept', 'Content-Type'], // 设置允许的请求头
exposedHeaders: ['WWW-Authenticate', 'Server-Authorization'], // 设置允许暴露的响应头
maxAge: 60, // 设置预检请求的有效期,单位为秒
credentials: true // 设置是否允许发送Cookie
}
});
// 添加路由
server.route({
method: 'GET',
path: '/',
handler: (request, h) => {
return 'Hello World!';
}
});
await server.start();
console.log(`Server running at: ${server.info.uri}`);
};
init();
在上述代码中,我们通过server.register
方法注册了hapi-cors插件,并在options中配置了跨域请求的相关参数,如允许的请求源、请求方法、请求头等。
cors
配置项:server.route({
method: 'GET',
path: '/api/data',
config: {
cors: true // 启用cors支持
},
handler: (request, h) => {
return 'Data response';
}
});
通过在路由的config中设置cors: true
,即可为该路由启用cors支持。
至此,我们已经成功为hapijs 17.2中的所有路由添加了cors支持。cors支持可以解决跨域请求的问题,使得前端应用可以从不同的域名或端口请求数据。
腾讯云相关产品推荐:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行。
领取专属 10元无门槛券
手把手带您无忧上云