不同域的页面如何通信(跨域)

  什么是跨域:不符合同源策略,也就是协议、IP、端口有一个不一致就是跨域,从而限制交互行为。

  为什么会出现浏览器跨域限制:避免数据出现安全问题,如果没有跨域限制,可以随意读取任意域名下的cookie,很容易发生CSRF攻击。

  对于浏览器来说,哪些资源会受到同源策略的限制:DOM、cookie、XMLHttpRequest、第三方插件等。

  跨域限制有什么问题:用户无法进行交互行为,上网的意义在何处?

  如何解决跨域问题:
    1、跨域资源共享(CORS):设置Access-Control-Allow-Origin:*

    2、jsonP(只支持GET):通过script标签引入一个js文件,这个js文件载入成功后会执行我们在url参数中指定的函数,并且把我们需要的json数据作为参数传入。

    3、通过webSocket进行跨域:它是浏览器的api,同源策略对webSocket不适用。

    4、使用window.name来进行跨域:无论是否同源,只要在同一个窗口里,都有读写的权限。

猜你喜欢

转载自www.cnblogs.com/wuqilang/p/11204682.html