Created Cors (markdown)

Stef Heyenrath
2022-01-06 15:42:28 +01:00
parent eb09d8cad1
commit 3b9f23b74f

53
Cors.md Normal file

@@ -0,0 +1,53 @@
# Issue
When calling WireMock.Net Server from a frontend applicatie (React / Angular), a CORS error is returned:
```
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:9091/__admin/mappings.
(Reason: CORS header Access-Control-Allow-Origin missing). Status code: 200.
```
# Solution
Cors support is not enabled by default, you can enable it yourself when configuring WireMock.Net Server, like:
``` c#
var settings = new WireMockServerSettings
{
// Other settings
};
/* Enable Cors */
var policyName = "MyPolicy";
settings.AdditionalServiceRegistration = services =>
{
services.AddCors(corsOptions =>
corsOptions.AddPolicy(policyName, // ◀️ MyPolicy
corsPolicyBuilder =>
{
corsPolicyBuilder
.AllowAnyHeader()
.AllowAnyMethod()
.AllowAnyOrigin();
}));
settings.Logger.Debug("Enable Cors");
};
/* Use Cors */
settings.PreWireMockMiddlewareInit = app =>
{
var appBuilder = (IApplicationBuilder)app;
appBuilder.UseCors(policyName); // ◀️ MyPolicy
settings.Logger.Debug("Use Cors");
};
// Start Server
var server = WireMockServer.Start(settings);
```
See also [WireMock.Net.StandAlone.NETCoreApp/Program.cs](https://github.com/WireMock-Net/WireMock.Net/blob/master/examples/WireMock.Net.StandAlone.NETCoreApp/Program.cs#L39).
# :books: References
- https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin
- https://stackoverflow.com/questions/31942037/how-to-enable-cors-in-asp-net-core