首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

对跨域请求的了解——从反证法的角度来理解跨域

2012-09-10 
对跨域请求的理解——从反证法的角度来理解跨域平时,我们从书籍上看到关于跨域请求的问题时,绝大多数作者只

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

下面举一例:
我们知道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是不允许跨域请求的。

热点排行