我正在开发Web服务的前端(html-jquery)和后端(php)。我正在使用XAMPP(Apache)在我的localhost中进行开发。我把我的前端和后端保留在eclipse上的不同项目中,只是为了让一切都更清洁。
但是,我需要从jQuery到php服务器进行ajax调用(Http Post请求)。我总是收到错误:XMLHttpRequest cannot load http://193.164.4.112/Server_CityInfo/whereSubscribed.php. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
我查看了错误,发现它与Same Origin Policy。
有关我还读到解决此错误的可能解决方案是使用CORS,JSONP或代理。但是,从错误的定义我明白,通过简单地将文件保存在同一目录中就可以解决问题吧?所以我所做的就是将所有前端文件移动到我的后端目录中,并尝试再次运行html页面来发出请求。
Boom!我再次得到同样的错误..我在这里做错了吗?现在不管它们在同一个目录中吗?
答案 0 :(得分:1)
只需将文件保存在同一目录中即可解决问题
没有。它们必须位于相同的来源(协议,主机名,端口)。
你有:
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
可能会解析到同一台计算机,由同一个网络服务器处理,并提供相同的文件,但浏览器不知道这一点。网址必须匹配。