同一域上的 CORS 错误

CORS error on same domain?

本文关键字:CORS 错误      更新时间:2023-09-26

我现在遇到了一个奇怪的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.comwww.example.com),请将回复中的Access-Control-Allow-Origin设置为请求中 Origin -header 的值(在您验证源已列入白名单后)。

另请注意,某些请求使用 OPTION 方法发送预检请求,因此如果您编写自己的代码,也必须处理这些请求。参见 Mozilla 的例子。

端口号不同。

如果任何方案、主机名或端口不匹配,则请求被视为跨域请求。