先看一段调用:<div id="container" style="width: 640px; height: 360px">
<script src="http://www.domainA.com/demo/main.js?xml_path=http://www.domainA.com/demo/slides.xml"></script>
<script>slideshow.init("container");</script>
</div>上面这段调用实现为http://www.domainA.com/demo/main.js会根据加载后的http://www.domainA.com/demo/slides.xml内的信息(包含资源地址如domainA上的图片地址)将相应的内容显示在container这个DIV内。这种实现如果是在domainA域下的页面内是没有问题的。但是现在我将把上面这段调用放在其它域内(比如domainB)的页面,就会报错应该是跨域访问的问题吧?不知道有没办法解决。
<script src="http://www.domainA.com/demo/main.js?xml_path=http://www.domainA.com/demo/slides.xml"></script>
<script>slideshow.init("container");</script>
</div>上面这段调用实现为http://www.domainA.com/demo/main.js会根据加载后的http://www.domainA.com/demo/slides.xml内的信息(包含资源地址如domainA上的图片地址)将相应的内容显示在container这个DIV内。这种实现如果是在domainA域下的页面内是没有问题的。但是现在我将把上面这段调用放在其它域内(比如domainB)的页面,就会报错应该是跨域访问的问题吧?不知道有没办法解决。
2. JS无法直接与网络层进行通信。脚本代码无法随意打开网络套接字,也无法使用不熟悉的协议进行通信。
3. JS控制浏览器窗口本身的功能是受限的,包括窗口的尺寸和位置。
4. 运行于X域中的脚本无法与Y域中的文档进行交互,不仅不能通过框架页进行跨域访问,也不能通过Ajax请求进行跨域访问。这一限制成为同源策略。
5. 脚本代码无法直接访问内存或者运行本地代码。
6. 脚本无法安装本地程序。
7. 脚本无法锁定计算机,也无法执行其它可能导致计算机无响应的操作。
这些限制有时也被成为安全沙箱。
就你的问题,我举个例子:
假如某个脚本运行在位于http://www.A.com/index.html的页面上,并且发起了对下列位置的Ajax请求,情况如下:
URL 输出 解释
http://www.A.com/products/javascript.html 成功
http://www.A.com/info/about/contact.html 成功
https://www.A.com/store.html 失败 协议(https)不同
http://www.A.com:81/info/about/contact.html 失败 端口(81)不同
http://browse.A.com/books/all.html 失败 主机(browse)不同
希望能够帮助到你!