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


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

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

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

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

      如何解决跨域问题:
        1、服务器代理:http-proxy-middleware--------原理:服务器之间的请求不存在跨域问题

        2、nginx代理:配置跨域代码  proxy-pass后面跟一个跨域的地址

        3、cors:服务端的代理方式----设置响应头:header(Access-Control-Allow-Origin:*);

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

      为什么ajax会造成跨域:

        受同源策略的限制,协议、ip、端口有一个不同就是跨域。如果跳转页面了,不存在跨域。ajax是不刷新页面,不进行跳转,所以ajax具有跨域问题。利用cors、服务器代理和nginx代理可以解决。

      jsonP的原理:

        表单中的action、script中的src、a标签和link标签中的href都会造成页面的跳转,所以这不存在跨域的问题。jsonP的原理是利用script的src进行跳转,前端将函数传到服务端,服务端将函数加工后再返回,所以jsonp和ajax不是一回事。

  • 相关阅读:
    Unity Ply网格读取
    LoadLibrary加载dll失败
    Anaconda引起cuda MSB3721 with return error code 1
    STL 如何对STL进行扩展,简单小结
    集群环境准备(Centos7)
    MySQL中的常见函数
    Mysql优化_第十三篇(HashJoin篇)
    docker创建和使用mysql
    JNI相关笔记 [TOC]
    选择排序
  • 原文地址:https://www.cnblogs.com/wuqilang/p/11204682.html
Copyright © 2020-2023  润新知