Comments (3)
@rpstw Note that curl -vL -X OPTIONS '10.20.0.23:3323/some-path?' -H Origin:https://some-origin.com
does not correspond to a CORS-preflight request: it's missing an Access-Control-Request-Method
header. Therefore, I wouldn't expect a properly implemented CORS middleware to include CORS headers in a response to such a request.
As for applying different CORS middleware on different routes, I believe that Echo allows you to do that. This example uses a different CORS library, but you should be able to adapt it to your needs.
from echo.
When you add GET route with CORS middleware with
e.Add(
http.MethodGet,
"/some/path",
SomeHandlerFunc,
middleware.CORSWithConfig(middleware.CORSConfig{
AllowCredentials: true,
}),
)
Echo router registers only node matching GET method in its internal routing tree. So when you issue OPTION method call to same path the CORS middleware do not get executed as it is tied (wrapping it) to GET handler. So CORS middleware is best to be used with e.Use()
by it to all routes or registering .OPTIONS("path"...
to be able to match only some of the requests
p.s. if choose to register own OPTIONS routes you can use echo.MethodNotAllowedHandler
handler function
Line 356 in 88c379f
from echo.
Thanks for the explanation.
from echo.
Related Issues (20)
- echo v4 websocket client closed, program exited HOT 3
- router not setting ContextKeyHeaderAllow for group, causing cors preflight to not work HOT 6
- Static file has wrong body returned when using a custom HTTP Error Handler and complex paths HOT 2
- QueryParams seem to override formValues HOT 3
- DefaultHTTPErrorHandler does not log HOT 3
- Support Casbin Authorization Middleware HOT 1
- Echo response object calls flush on unflushable objects HOT 7
- Feature request: support Yaml responses transparently. HOT 1
- static middleware: path ist unescaped twice for file names, leading to not downloadable content
- CSRF middleware form lookup consumes all the request body HOT 1
- Question: How can I serve content from static HTML files using URLs that have no '.html' extension HOT 5
- Omitempty in form HOT 1
- Return error if reverse() does not find a match HOT 9
- How to read a path param with echo that can contain slashes? HOT 3
- Unclear behaviour of `*` in routes HOT 7
- Is there any plan to facilitate responses in the Protobuf data format? HOT 2
- When `c.bind()` fails with a type error on POST'd form data the `inputfieldname` is not available HOT 3
- Using static middleware, does not raise handler at '/*' path HOT 13
- proposal: Micro-optimization for better memory utilization HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from echo.