我正在开发一个Web Service的前端(html-jquery)和后端(php)。我正在使用XAMPP(Apache)在我的本地主机上开发。我把我的前端和后端放在eclipse的不同项目中,只是为了让一切更干净。
然而,我需要做一个ajax调用(Http Post请求)从jQuery到php服务器。我总是得到错误:XMLHttpRequest cannot load http://193.164.4.112/Server_CityInfo/whereSubscribed.php. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
我看了一下这个错误,我发现它与同源策略有关。
我也读到解决这个错误的可能解决方案是使用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必须匹配