您的位置:首页 > 其它

英国人如何教育孩子 - [转]

2009-06-24 22:51 225 查看
平时,我们从书籍上看到关于跨域请求的问题时,绝大多数作者只是给出“某某某不允许跨域操作”,但很少提及为什么不允许。其实可以从反证法的角度来看对跨域请求问题。你可以这样思考:
如果允许跨域请求,那么会发生什么?

下面举一例:

我们知道XMLHttpRequest是不允许跨域请求,为什么?

举个返例即可知若XMLHttpRequest允许跨域会发生多可怕的事。很多浏览器的插件是直接在当前文档里插入DOM及相关动态脚本的,若允许XMLHttpRequest跨域请求的话,那么对于一些恶意插件,其插入的动态脚本完成可以使用XMLHttpRequest将当前文档的相关隐私数据,或伪造表单将用户相关数据通过XMLHttpRequest提交到跨域的恶意服务器上。

这样讲可能有点空洞。下面举一个跨域请求的切实一点的例子:

1.打开itravel.smartcom.cc

2.在控制台上运行

$.get('http://www.google.com/ig/api?weather=%E6%B7%B1%E5%9C%B3&hl=zh-cn', function(res) {

}, 'xml');

浏览器会明确提示:
XMLHttpRequest cannot load http://www.google.com/ig/api?weather=%E6%B7%B1%E5%9C%B3&hl=zh-cn.Origin http://itravel.smartcom.ccis not allowed by Access-Control-Allow-Origin.

以上跨域请求只是为了测试,对于恶意请求,其完全有可能在请求体中塞入本文档中的隐私数据。

所以XMLHttpRequest是不允许跨域请求的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: