[英]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.