同一域(本地主机)上的XHR跨域错误

说明:

我有一台运行在Apache服务器上的小型web应用程序,它使用javascript来执行一些XHR。 很长一段时间它没有问题,今天所有的XHR停止工作,但只在本地主机,如果你从外面访问它完美的作品。

问题:

使用Mozilla Firefox,萤火虫警告:

“跨源请求被阻止:同源策略不允许读取http://127.0.0.1:3581/datasnap/rest/TdssMloteamento/getLoteamento/true/的远程资源,这可以通过将资源移动到相同的域来解决或启用CORS“。

但是我在本地主机上访问一个本地内容,XHR在同一台机器上调用本地datasnap服务器,在本地恢复,本地失败,并从networking上运行。

注释:

我正在访问的url内的Apache网页: http://127.0.0.1:3582/beeWebLoteamento/Principal.php : http://127.0.0.1:3582/beeWebLoteamento/Principal.php : http://127.0.0.1:3582/beeWebLoteamento/Principal.php

对我来说,这是完全的, 奇怪的,这只是没有意义,没有逻辑,为什么我得到一个跨域错误,如果我访问相同的域?

目的:

我想知道发生了什么,并解决这个问题,继续做我的XHR本地和通过networking(外部)。

我找到了解决方案/问题,那就是:

将所有127.0.0.1替换为192.168.25.100 (即本地机器ip),一切正常,所以请求是:

http://127.0.0.1:3581/datasnap/rest/TdssMloteamento/getLoteamento/true/

并成为:

http://192.168.25.100:3581/datasnap/rest/TdssMloteamento/getLoteamento/true/

而我在网址中访问了我的web应用程序(apache):

http://192.168.25.100:3582/beeWebLoteamento/Principal.php

恢复:

为了避免这些跨域问题,使用机器的本地IP地址“通常以192.168.xxx.xxx开头”来访问它所托管的所有东西,XHR也不是Apache,而是使用127.0.0.1localhost

尝试在您的后端脚本中发送标头access-control-allow-origin: *