Php 同源策略错误,jQuery

Php 同源策略错误,jQuery,php,jquery,json,http-post,same-origin-policy,Php,Jquery,Json,Http Post,Same Origin Policy,我正在开发Web服务的前端(html jquery)和后端(php)。我正在本地主机上使用XAMPP(Apache)进行开发。我把前端和后端放在eclipse上的不同项目中,只是为了让一切都更干净 但是,我需要从jQuery向php服务器进行ajax调用(Http Post请求)。我总是遇到错误:XMLHttpRequest无法加载http://193.164.4.112/Server_CityInfo/whereSubscribed.php. 起源http://localhost 访问控制允许

我正在开发Web服务的前端(html jquery)和后端(php)。我正在本地主机上使用XAMPP(Apache)进行开发。我把前端和后端放在eclipse上的不同项目中,只是为了让一切都更干净

但是,我需要从jQuery向php服务器进行ajax调用(Http Post请求)。我总是遇到错误:
XMLHttpRequest无法加载http://193.164.4.112/Server_CityInfo/whereSubscribed.php. 起源http://localhost 访问控制允许源站不允许使用。

我查看了一下错误,发现它与错误有关

我还了解到,解决这个错误的可能解决方案是使用CORS、JSONP或代理。但是,从错误的定义来看,我知道只要将文件保存在同一个目录中就可以解决问题,对吗?因此,我所做的是将所有前端文件移动到后端目录中,并尝试再次运行html页面以发出请求

轰!我又犯了同样的错误。。我做错什么了吗?既然他们在同一个目录下,难道不应该工作吗

只要将文件保存在同一个目录中就可以解决问题

不可以。它们必须位于同一来源(协议、主机名、端口)

你有:

http  193.164.4.112  80 (default for HTTP) 
http  localhost      80 (default for HTTP) 
193.164.4.112
不是
localhost
,因此您选择了同一来源策略


193.164.4.112
localhost
可能解析到同一台机器,由同一个Web服务器处理,并提供相同的文件,但浏览器不知道这一点。URL必须匹配。

您所说的“将所有前端文件移动到我的后端目录”是什么意思?将我的html文件与我的php文件移动到同一目录中。。在我得到我的html:192.168.2.1/clientSide/example.html和我的php:192.168.2.1/serverSide/example.php之前。现在我删除了clientSide目录,并将所有文件移到了serverSide目录。现在一切都很好。如果我错了,请纠正我,而不是使用绝对url,相对url也可以解决问题是的,这应该有效(只要答案最后一段中的“可能”是实际发生的情况)好的,我解决了这样的问题:我在浏览器中键入localhost/pathToHTML。相反,我实际上键入了ip/pathToHTML并运行了!所以最后我可以通过将文件保存在同一个目录中来解决这个问题,对吗?我之所以出现这个问题,是因为我在本地尝试,并且出现了localhost vs ip错误。但是我的用户将在其他PC上,不会有任何问题,对吗?正如我所说,目录并不重要。一切都取决于URL的本地部分。