whistle.mock-plugins 1.0.6-beta.0 → 1.0.6-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -231,6 +231,20 @@ const ruleManager = {
231
231
  // 只记录关键信息
232
232
  this.log(`[规则处理器] 处理请求,接口: ${interfaceObj.name}, 代理类型: ${proxyType}`);
233
233
 
234
+ // 添加CORS支持 - 设置跨域相关的响应头
235
+ res.setHeader('Access-Control-Allow-Origin', req.headers.origin || '*');
236
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS, PATCH');
237
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, Accept');
238
+ res.setHeader('Access-Control-Allow-Credentials', 'true');
239
+ res.setHeader('Access-Control-Max-Age', '86400'); // 24小时
240
+
241
+ // 处理预检请求
242
+ if (req.method === 'OPTIONS') {
243
+ res.statusCode = 204; // No Content
244
+ res.end();
245
+ return { handled: true };
246
+ }
247
+
234
248
  // 设置响应头
235
249
  let headers = config.headers;
236
250
  if (typeof headers === 'string') {
package/lib/server.js CHANGED
@@ -410,6 +410,20 @@ const handleLegacyRequest = (req, res, next) => {
410
410
  const https = require('https');
411
411
  const { Readable } = require('stream');
412
412
 
413
+ // 添加CORS支持 - 设置跨域相关的响应头
414
+ res.setHeader('Access-Control-Allow-Origin', req.headers.origin || '*');
415
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS, PATCH');
416
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, Accept');
417
+ res.setHeader('Access-Control-Allow-Credentials', 'true');
418
+ res.setHeader('Access-Control-Max-Age', '86400'); // 24小时
419
+
420
+ // 处理预检请求
421
+ if (req.method === 'OPTIONS') {
422
+ res.statusCode = 204; // No Content
423
+ res.end();
424
+ return;
425
+ }
426
+
413
427
  // 获取原始完整URL的所有可能来源
414
428
  let originalUrl = null;
415
429
 
@@ -505,6 +519,20 @@ const handleLegacyRequest = (req, res, next) => {
505
519
  res.setHeader(key, proxyRes.headers[key]);
506
520
  });
507
521
 
522
+ // 确保设置CORS头,即使原始响应没有
523
+ if (!res.getHeader('Access-Control-Allow-Origin')) {
524
+ res.setHeader('Access-Control-Allow-Origin', req.headers.origin || '*');
525
+ }
526
+ if (!res.getHeader('Access-Control-Allow-Methods')) {
527
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS, PATCH');
528
+ }
529
+ if (!res.getHeader('Access-Control-Allow-Headers')) {
530
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, Accept');
531
+ }
532
+ if (!res.getHeader('Access-Control-Allow-Credentials')) {
533
+ res.setHeader('Access-Control-Allow-Credentials', 'true');
534
+ }
535
+
508
536
  // 设置状态码
509
537
  res.statusCode = proxyRes.statusCode;
510
538
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whistle.mock-plugins",
3
- "version": "1.0.6-beta.0",
3
+ "version": "1.0.6-beta.1",
4
4
  "description": "Whistle 插件,用于快速创建 API 模拟数据",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {