2

可能重复:
请解释 JSONP
在“www.foo.com”页面上,从“www.example.com”加载的脚本可以向“www.example.com”发送 ajax 请求吗?

我需要从 javascript 向 php 文件发出请求。
然后 php 文件从数据库中提取数据,然后将信息发送回 javascript。

我认为最好的方法是制作一个使用 XMLHTTP 向 PHP 脚本询问信息的 javascript。Javascript 文件和 PHP 文件都在同一主机上。

问题是我在不同的域上调用 javascript。这意味着由于同源策略,我无法将 XMLHTTP.open 设置为不同的域。

即使从技术上讲 javascript 和 php 文件都在同一主机上,我是否不走运?解决这个问题的最佳方法是什么?我看到有人提到使用 JSON。

另一个问题是我不能使用 jQuery。我知道如果我可以使用 jQuery,事情会更容易——但我不能。

这是我正在尝试做的非常接近的近似值,除了我的请求必须是跨域的:
http ://www.w3schools.com/php/php_ajax_database.asp

有任何想法吗?我对替代解决方案持开放态度。谢谢!

4

2 回答 2

2

I think the focal point of your investigation should be the "domain mess":

  • For the client side, it is of no importance, whether the 2 domains are on the same host: Only the domain counts
  • For the server side, this ofcourse is different.

You might be trying to create some sort of interop between two applications on the same server - this might be achievable by some self-proxying or by simply creating an interop domain, loading the relevant parts from there.

于 2012-08-28T08:05:33.070 回答
1

如果 HTTP GET 足够,我建议您使用 JSONP (http://en.wikipedia.org/wiki/JSONP)。(您不需要将二进制文件发送到您的服务器)。

这是很简单的想法。首先,您创建一个回调来处理来自服务器的数据。

var callback = function(data) { alert('My name is ' + data.user) };

然后在 DOM 中添加脚本元素:

<script src='http://external-domain.com/api.php'></script>

它返回用您的回调函数包装的 json 结果

callback({ user : Aaren });
于 2012-08-28T08:09:49.167 回答