【问题标题】:Pact mock server not returning proper CORS headersPact 模拟服务器未返回正确的 CORS 标头
【发布时间】:2017-12-21 01:43:30
【问题描述】:

我的 Pact 模拟服务器正在侦听与我的测试不同的端口,并且我的 Pact 模拟服务器正在使用以下配置运行:

const provider = pact({
consumer: 'myconsumer',
provider: 'myprovider',
port: 8989,
cors: true,
log: path.resolve(process.cwd(), 'logs', 'pact.log'),
dir: path.resolve(process.cwd(), 'pacts'),
logLevel: 'DEBUG',
spec: 1
});

我使用“axios”请求上述模拟服务器,并且该请求与我在提供程序上配置的交互之一匹配(根据 pact.log)。但是响应总是会引发 CORS 错误。

我的契约日志有以下信息: 收到模拟服务管理端点 POST /interactions 的 OPTIONS 请求。返回 CORS 标头:{"Access-Control-Allow-Origin":"null","Access-Control-Allow-Headers":"x-pact-mock-service","Access-Control-Allow-Methods":" DELETE、POST、GET、HEAD、PUT、TRACE、CONNECT、PATCH"}。

为什么 Access-Control-Allow-Origin 是 null 而不是 '*'。 ?

当我使用基于 webpack、npm 和 mocha 的测试时,如何通过测试作为最终手段完全禁用 CORS 安全性?

【问题讨论】:

    标签: javascript cors pact


    【解决方案1】:

    CORS 标志有点误导。如果您的应用程序使用 CORS,那么您仍然需要告诉 Pact 它应该根据 cors 标准期待对 OPTIONS 的请求。这是合同的一部分,您不能只期望您的服务器能够正常工作,因此它应该是您测试的一部分。

    请参阅https://github.com/pact-foundation/pact-js/issues/58 了解背景信息。

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      相关资源
      最近更新 更多