本文总结了我在遇到javascript跨域问题时曾经尝试过的解决方法,可能考虑的不太全面。 javascript处于安全的考虑,不允许访问不同 域名的文档,不同域不仅包括不同的主域名也包括主域名和子域名,一个主域名下的不同子域名(如: 和 ),一个主域名下二级域名和三级域名(如: 和 )。在这种时候javascript不能获取不同域的任何信息(取值和赋值)。 javascript的跨域包括 Ajax跨域访问和通过javascript访问frame,iframe中不同域名的文档,实际这些都是由于 javascript的跨域问题所引起的。 下文将给出几种解决 javascript跨域问题的解决方法: 1.通过异步添加<script>标签来进行回调 个人感觉异步加载script是跨域比较完美的解决方案,不过目标程序需要为js格式,举个例子来说我想在 中调用 : b.php <?php echo 'alert("Hello");'; ?> a.php的javascript var script = document.createElement("script"); script.setAttrbute("src", " "); 这样a.php中浏览器开始解释b.php输出的内容js 2.通过本地程序进行中转 假设 下的a.html想要通过 Ajax调用 下的b.php,直接进行 Ajax调用肯定会出现Permission denied的,那就要想办法通过 来访问目标文件,这就需要一个中转程序暂且就称他remoteproxy.php,在php中可以通过file_get_contents,socket等方法取调用远端程序,这样 通过Ajax去调用 ,这样在浏览器看来是通过 Ajax来调用调用同一域名下的文件,这样就解决了 Ajax跨域的问题。 3.通过服务器配置来进行内部转发 采用服务器端rewrite的方法来实现浏览器端url不变的跳转,如apache的http-proxy模块。原理同2。