大神讲跨域问题

jsonp跨域的方式是通过服务器返回一段跨域的可执行js脚本,来实现跨域。
这种方式的缺点是:
1、返回的不是纯数据,而是可执行脚本。
2、只能GET不能POST,因此提交的数据不能很大。
3、没有跨域安全性限制,所以对服务来说不是安全的。

除了jsonp这种跨域方式以外,现在还有另外两种跨域方式:
1、flash post 跨域。
2、通过 CORS 标准跨域。

hprose中使用的就是这两种跨域方式的结合。

iframe的跨域呢?
iframe跨域同样有jsonp的三个限制。

Flash POST跨域可以支持大多数的浏览器,包括低版本的IE,缺点是没有Flash的情况下,不能使用。
CORS 标准跨域可以支持大多数现代浏览器,但是对低版本的IE不支持。

hprose结合了这两种跨域方式,因此对目前几乎所有的浏览器都支持全功能跨域调用。

并且hprose提供的是rpc的调用方式,使用起来也更简单,更方便,支持的语言也更多。

并且服务器端可以控制可以跨哪些域,这样可以从服务器端来控制安全跨域。

CORS跨域是未来的趋势,尤其是微软抛弃了XP之后,CORS是html5开发中跨域的首选方案。 


你可能感兴趣的:(大神讲跨域问题)