浏览器的同源策略
XHR对象只能访问与包含它的页面位于同一域中的资源,这种安全策略可以预防某些恶意行为
——-《JavaScript高级程序设计》
虽然同源策略保护了我们远离恶意行为,但是跨域访问资源又是必不可少的,所以产生了一些解决的方案,其原理大概就是从浏览器端或者服务器端来实现的。
先说从浏览器端的解决方案:
jsonp(动态设置script标签)
在网上找到的一些资源里把这jsonp和动态设置script分开来,但我觉得两个原理是相同的。都是动态得添加一个script标签。
jsonp与json没有什么必然的联系,一个是请求数据的方式,一个是一种数据格式。jsonp中的数据并不是简单的json,
|
|
原本的json文件被包含在一个函数内,我们就是要调用这个js文件,然后执行这个fn函数,而这个fn函数我们可以在调用中自己定义,怎么处理数据就是自己的事情了。
jQuery已经把jsonp写入到ajax方法中去了,在使用时我们就可以像使用普通的ajax请求一样拿到跨域数据。不必在意jQuery内部做了什么。