tre*_*der 19 javascript same-origin-policy
我想从像cloudflare这样的CDN提供我的JavaScript脚本.
现在我的脚本通过ajax与我的app服务器通信.当我从CDN加载这些脚本时,相同来源的策略限制不会发挥作用吗?
假设我的应用程序在域上:
http://app.com
Run Code Online (Sandbox Code Playgroud)
我加载我的脚本
http://cdn.com/xyz/all.js
Run Code Online (Sandbox Code Playgroud)
现在,由于我的脚本是从与我的应用程序运行的域不同的域加载的,因此我猜相同的源策略会阻止我与我的应用程序进行ajax通信.
我弄错了吗?
Pri*_*orn 20
不,它会奏效.这就是JSONP的工作原理.脚本的"起源"是它执行的页面,而不是它来自哪里.
正如你所要求的,这是一个参考(我找不到更好的,但Crockford是众所周知的)
令人惊讶的是,src属性不受同源策略的约束.这意味着可以创建一个脚本元素,可以转到任何服务器,获取脚本并执行它.如果脚本导致JSON编码数据的传递,那么这是一个非常有用的东西.不幸的是,没有办法限制脚本或在执行之前检查脚本.它与页面中的脚本具有相同的权限.因此脚本可以访问和使用其cookie.它可以使用用户的授权访问原始服务器.它可以检查DOM和JavaScript全局对象,并发送它在世界任何地方找到的任何信息.Script Tag Hack不安全,应该避免.
http://javascript.crockford.com/script.html
不是真正的参考:如果这不起作用,没有人可以从谷歌的CDN中包含jQuery,然后使用它的$.ajax方法.
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |