我知道这是一个热门话题,但我还没有找到一个完全全面的答案。
我正在尝试为我们的“客户”创建一种简单的方法,以便在他们的网站上放置谷歌地图,该地图会在地图上绘制我们客户(或其子集)的位置。客户位于 MySQL 数据库中,该数据库由 PHP 脚本动态转换为 XML(根据 Google 的示例)。这在我的网站上运行良好,但是当我在另一个网站上尝试它时,不允许 xmlHTTPRequest 查看 PHP,因为它在另一个域上。
我可以通过在另一个域上编写另一个 PHP 文件来规避这个问题,该文件只是读取原始域上的 PHP 文件。但并非我们所有的客户都会在他们的服务器上运行 PHP。有什么方法可以使用 JavaScript 从我们的数据库返回 XML 结果?
几点:
生成 xmlHTTPRequest 的 JavaScript 仍然位于我们的服务器上——我们的客户端从脚本标记链接到它。我认为这可能就足够了,但“起源”(无论如何,根据 Chrome)仍然被视为域#2
这很棒:如果我在 xmlHTTPRequest 中使用绝对引用(例如 request.open('GET', 'http://mydomain.com/api/foo.php', true)),那么它将在 IE 中失败,但是如果我使用相对引用('/api/foo.php'),它将起作用。
我对此知之甚少,但我可以使用 JSON 吗?我见过:'script src="http://..../someData.js?callback=some_func"' 但不知道怎么做,我会让 'someData.js' 看起来像 JSON?(我在功能方面思考得很多,这可能是不正确的?)。
我尝试添加: header("Access-Control-Allow-Origin: *"); 到输出 XML 的 PHP 的顶部,但我可以说它并没有做太多事情!
如果我确实在客户端服务器上使用 PHP 包装器,那么使用 cURL 请求而不是简单的 file_get_contents 或 fopen 有什么好处?
对不起,很多问题,但任何指导将不胜感激。
万分感谢,
垫