Question :
I’m running into a weird CORS issue right now.
Here’s the error message:
XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[...]
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin
Two servers:
- localhost:8666/routeREST/ : this is a simple Python Bottle server.
- localhost:8080/ : Python simpleHTTPserver where I run y Javascript application. This app is executing Ajax requests on the server above.
Any thought on what could be the problem?
EDIT:
And… the port was the problem. Thanks for your answers 🙂
If anyone is using a Python bottle server as well, you can follow the answer given on this post to solve the CORS issue:
Bottle Py: Enabling CORS for jQuery AJAX requests
Answer #1:
It is only considered to be the same if the protocol, host and port is the same: Same Origin Policy
If you want to enable it you must follow Cross-Origin Resource Sharing (cors) by adding headers. Mozilla has examples
You need to add Access-Control-Allow-Origin as a header in your response. To allow everyone (you should probably NOT do that):
Access-Control-Allow-Origin: *
If you need to support multiple origins (for example both example.com
and www.example.com
), set the Access-Control-Allow-Origin
in your reply to the value of the Origin
-header from the request (after you verified that the Origin is white-listed.)
Also note that some requests send a preflight-request, with an OPTION-method, so if you write your own code you must handle those requests too. See Mozilla for examples.
Answer #2:
The port numbers are different.
A request is considered cross-domain if any of the scheme, hostname, or port do not match.