在跨站点 XHR API 得到广泛支持之前,通过 JavaScript 发出跨站点请求的最佳方式是什么?我一直在使用 iFrame,但这些可能会有点乱。有没有更好的办法?(更好,我的意思是更容易使用。)
另外,我更喜欢看纯 JavaScript 代码,而不是 jQuery 等框架。我使用的是我自己的迷你框架,我不想查看他们是如何做到的。
编辑:我忘了提,我无法控制目标服务器,所以我不能使用动态<script>
标签方法。
在跨站点 XHR API 得到广泛支持之前,通过 JavaScript 发出跨站点请求的最佳方式是什么?我一直在使用 iFrame,但这些可能会有点乱。有没有更好的办法?(更好,我的意思是更容易使用。)
另外,我更喜欢看纯 JavaScript 代码,而不是 jQuery 等框架。我使用的是我自己的迷你框架,我不想查看他们是如何做到的。
编辑:我忘了提,我无法控制目标服务器,所以我不能使用动态<script>
标签方法。
我知道有两种常见的方法。一种是在您的服务器上使用代理,基本上是一个为您获取数据的 php 文件。
另一种是使用动态脚本标签。更多信息在这里:
http://www.hunlock.com/blogs/Howto_Dynamically_Insert_Javascript_And_CSS
此幻灯片的第 9 页也有一些信息:
您还可以查看 easyxss ( http://code.google.com/p/easyxss/wiki/InvokingRemoteMethods )。只需几行代码,您就可以获得跨域边界的方法调用。
如果您要获取的数据是 JSON,请查看JSONP。它通过将<script>
标签注入到引用远程服务器上的脚本的 DOM 中来工作。另一端的服务器返回一些 json/javascript 样式的响应,调用带有数据的“回调”函数。基本上远程脚本看起来像这样:
callbackfunc({'somedata':'testing'});
callbackfunc
您在脚本中定义的函数在哪里。