0

我正在开发 Web 服务的前端(html-jquery)和后端(php)。我正在使用 XAMPP(Apache) 在我的本地主机中进行开发。我将前端和后端保留在 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 页面来发出请求。

繁荣!我再次得到同样的错误..我在这里做错了吗?现在它们在同一个目录中不应该工作吗?

4

1 回答 1

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可能解析到同一台机器,由同一个网络服务器处理,并提供相同的文件,但浏览器不知道。URL 必须匹配。

于 2013-05-22T08:35:36.977 回答