Egg如何处理跨域请求加载外部资源?
时间: 2024-09-09 12:00:40 浏览: 36
JS跨域请求外部服务器的资源
在Egg.js中处理跨域请求加载外部资源通常是通过设置允许跨域的中间件或者在服务器上启用相应的CORS策略。以下是几种常见的做法:
1. **设置CORS中间件**:可以使用`cors`插件(如`egg-cors`),在启动Egg应用时配置CORS规则,允许特定来源访问资源。例如,在`config.cors.js`中添加:
```javascript
module.exports = {
origins: ['http://yourdomain.com', 'https://yourdomain.com'],
};
```
这将允许从`yourdomain.com`发起的跨域请求。
2. **全局配置**:在`config.middleware.js`或`config.default.js`中添加CORS配置:
```javascript
// 全局启用CORS
exports.http = {
middleware: [
// ...其他中间件
{ provide: 'cors', options: { origins: '*' } },
],
};
```
这里`'*'`表示所有源都可以访问。
3. **路由级控制**:在具体的路由配置中,也可以选择性地开启CORS。例如:
```javascript
exports.someRoute = {
path: '/api/resource',
methods: ['GET'],
async handler(ctx) {
ctx.set('Access-Control-Allow-Origin', '*');
ctx.body = await yourApiCall();
},
};
```
这样,当访问`/api/resource`时,Egg会自动处理跨域请求。
阅读全文