簡體   English   中英

在 Mountebank 響應中添加常見的 CORS 標頭

[英]Add common CORS headers in Mountebank responses

使用 mounteback 作為模擬服務器的 React 應用程序,我收到此錯誤

Access to fetch at 'http://localhost:8080/xxx/api/secured/policies' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

我設法找到了關於 OPTIONS 飛行前https://groups.google.com/g/mountebank-discuss/c/G7TRM87Pocs

但即使這樣還不夠,我不得不:

{
    "is": {
    "headers": {
      "Content-Type": "application/json",
      "Access-Control-Allow-Headers": "*",
      "Access-Control-Allow-Methods": "*",
      "Access-Control-Allow-Origin": "*"
    }
  }, ...truncated...,

}

對於所有響應存根(我嘗試了一個並且有效,這意味着我需要為所有人做)。 有什么辦法可以在一個中央位置添加這個標頭,這樣我就不需要將它添加到所有存根(它是一個現有的項目,帶有半生不熟的模擬,不起作用,必須使用 CORS-unblock 插件而不用這個變化)?

我找到了使用 defaultResponse 字段的解決方案,只要找不到存根匹配項,該字段就會返回 CORS 設置。 此外,如果存根匹配存在,它將存根響應與 defaultResponse 合並,因此所有存根都將根據我的要求在中央位置具有此 CORS 設置。

根據文檔:

“如果沒有謂詞匹配,則發送的默認響應。還表示合並到未指定每個字段的響應中的默認值”

http://www.mbtest.org/docs/protocols/http

這是我已經登陸並為我工作的解決方案(無需向每個單獨的存根添加 CORS):

{
"imposters": [
    {
      "port": 8080,
      "protocol": "http",
      "defaultResponse": {
        "headers": {
          "Content-Type": "application/json",
          "Access-Control-Allow-Headers": "*",
          "Access-Control-Allow-Methods": "*",
          "Access-Control-Allow-Origin": "*"
        }
      },
      "stubs": [
        <% include policy/sample1.json %> <%# truncated the list of json files which was about 20+ %>
      ]
    }
  ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM