我现在遇到了一个奇怪的CORS问题。
下面是错误消息:
XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[...]
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin
两台服务器:
- localhost:8666/routeREST/: 这是一个简单的 Python Bottle 服务器。
- localhost:8080/: Python simpleHTTPserver,我在其中运行y Javascript应用程序。此应用程序正在上面的服务器上执行 Ajax 请求。
有什么想法可能是什么问题吗?
编辑:
而且......港口是问题所在。感谢您的回答:)
如果有人也在使用Python瓶子服务器,你可以按照这篇文章中给出的答案来解决CORS问题:Bottle Py:为 jQuery AJAX 请求启用 CORS
只有当协议、主机和端口相同时,才认为它是相同的: 同源策略
如果要启用它,则必须通过添加标头来遵循跨源资源共享 (cors)。Mozilla有例子
您需要在响应中添加访问控制允许源作为标头。要允许每个人(您可能不应该这样做):
Access-Control-Allow-Origin: *
如果您需要支持多个源(例如example.com
和www.example.com
),请将回复中的Access-Control-Allow-Origin
设置为请求中 Origin
-header 的值(在您验证源已列入白名单后)。
另请注意,某些请求使用 OPTION 方法发送预检请求,因此如果您编写自己的代码,也必须处理这些请求。参见 Mozilla 的例子。
端口号不同。
如果任何方案、主机名或端口不匹配,则请求被视为跨域请求。