同一域上的 CORS 错误?

2022-08-30 05:18:17

我现在遇到了一个奇怪的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


答案 1

仅当协议主机端口相同时,才将其视为相同:同源策略

如果要启用它,则必须通过添加标头来遵循跨域资源共享(cors)。Mozilla 有例子

您需要在响应中添加访问控制允许源作为标头。要允许每个人(你可能不应该这样做):

Access-Control-Allow-Origin: *

如果您需要支持多个源(例如,同时支持 和 ),请在回复中将 设置为请求中 -header 的值(在您验证 Origin 已列入白名单之后)。example.comwww.example.comAccess-Control-Allow-OriginOrigin

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


答案 2

端口号不同。

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