我在一台机器上的apache服务器上运行了一个小型Web应用程序,该机器使用javascript来执行某些XHR。很长一段时间没有任何问题,今天所有XHR都停止工作,但只在本地主机上,如果从外部访问它,它可以很好地工作。
使用mozilla firefox,firebug警告:
"阻止跨源请求:同源策略禁止在
http://127.0.0.1:3581/datasnap/rest/TdssMloteamento/getLoteamento/true/
读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决。"
但是我在本地主机上访问本地内容,该内容让XHR在同一台机器上调用本地数据删除服务器,恢复,本地失败,并从网络上运行。
我正在访问网址:http://127.0.0.1:3582/beeWebLoteamento/Principal.php
这对我来说完全,真的,怪异,这只是没有意义,没有逻辑,为什么我在进入同一个域时会遇到跨域错误?
我想知道发生了什么并解决了这个问题,以便继续在本地和通过网络(外部)完成我的XHR。
答案 0 :(得分:2)
将所有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/
我在网址中访问了我的网络应用程序(apache):
http://192.168.25.100:3582/beeWebLoteamento/Principal.php
要避免这些跨域问题,请使用机器的本地IP地址"通常以192.168.xxx.xxx
"访问托管在其上的所有内容,XHR也不是Apache,而不是使用127.0.0.1
或localhost
答案 1 :(得分:0)
尝试在后端脚本中发送标头access-control-allow-origin: *