CORS is not allowing to access data

Why was the edrone script blocked by Cross-Origin Resource Sharing (CORS)?

Sławomir Pociecha avatar
Written by Sławomir Pociecha
Updated over a week ago

Cross-Origin Resource Sharing (CORS) is a security feature implemented by web browsers to restrict web pages from making requests to a different domain than the one that served the web page. Its role is to tell the browser whether the client should be given access to the data requested.

The server decides whether the client is a trusted client and sets the appropriate headers based on that. With these headers, the browser knows whether it should share the data with the client (this could be data used to substitute part of the page containing, for example, a subscription form).

When you encounter a CORS error, it means that a web page is trying to make an XMLHttpRequest, Fetch API request, or another type of cross-origin HTTP request to a domain that is different from the one the web page originated from.

To deal with CORS errors, you have many options, we give you some ideas:

1. Server-side configuration

  • Enable CORS on the Server: If you control the server, you can configure it to include the appropriate CORS headers in its responses. You typically do this by adding headers like Access-Control-Allow-Origin, Access-Control-Allow-Methods, and Access-Control-Allow-Headers to the HTTP response.

  • Specify Allowed Origins: You can configure the server to allow specific origins to access its resources. For example, you can set Access-Control-Allow-Origin: https://example.com to allow only requests from https://example.com to access your resources.

  • Handle Preflight Requests: In some cases, browsers send a preflight OPTIONS request before making the actual request. You should handle this OPTIONS request and respond with appropriate CORS headers.

2. Proxy server

Set up a proxy server on your domain that forwards requests to the external domain. This way, your frontend makes requests to your own domain, avoiding CORS issues since the requests are now same-origin.

3. JSONP (JSON with Padding)

If you're fetching data and the server supports JSONP, you can use JSONP requests. JSONP works by dynamically adding a script tag to your HTML document, and the server responds with JSON wrapped in a function call.

4. CORS bypass extensions

You can use browser extensions like "CORS Everywhere" or "Allow CORS: Access-Control-Allow-Origin" to temporarily disable CORS restrictions while you're developing or testing.

5. Use server-side code

If you have control over the server, you can create server-side code to act as a proxy. Your frontend sends a request to your server, and your server forwards the request to the external domain, then returns the response to your frontend.

6. WebSocket connections

If you're dealing with WebSocket connections, CORS issues may not apply in the same way as traditional HTTP requests. WebSocket connections are initiated with a handshake and don't have the same restrictions.

7. Consider CORS alternatives

In some cases, you might consider alternatives like JSONP, Cross-Origin Embedding (COEP), or Cross-Origin Opener Policy (COOP) depending on your specific use case and browser support.

These are just suggestions for solutions, you yourself must verify whether you can adopt any solution.


Do you need more help?

If you have additional questions related to edrone script blocking on your store page, please contact us via chat or at hello@edrone.me

Did this answer your question?