2

我使用 AJAX 将数据从 Javascript 发送到 PHP 文件,但我无法将响应数据从 PHP 取回到 Javascript,因为我知道 Javascript 代码与 PHP 代码位于不同的域中。任何人都有解决这个问题的想法?

问候,

4

3 回答 3

3

要在 JS 跨域中接收响应,您可以通过添加Access-Control-Allow-Origin标头来启用 CORS。但是,这可能是参差不齐的。

更好的解决方案是将编码为JSONP的响应发回。

这是一个使用 JSONP 的示例。我调用的 API 是我自己的,它支持 JSONP 响应。 JSONP 示例

相反,以下示例也适用。在这种情况下,我没有使用 JSONP。此请求有效,因为我的 API 启用了 CORS。但是,就像我说的那样,我发现这很不稳定,并且会推荐 JSONP。

CORS 示例

于 2012-06-13T16:45:11.713 回答
1

跨域 javascript 可能很困难。看看http://easyxdm.net/wp/

于 2012-06-13T16:44:31.033 回答
0

AFAIK 出于安全原因,没有办法将 ajax 请求发送到不同的域。我可以想到一些解决方法:

  • 调用 php 代理,然后通过套接字或 curl 发出请求。例子
  • 制作一个调用它的 Flash 电影并设置一个 crossdomain.xml 文件
于 2012-06-13T16:42:29.067 回答