zoukankan      html  css  js  c++  java
  • 跨域

    什么是同源

    两个url的源必须一模一样,就说这两个url就是同源的

    同源策略

    • 浏览器故意规定:如果一个JS文件运行在源A里,那么就只能获取到源A的数据。不能获取到其他源的数据,即不允许跨域
    • 不同源的页面之间不允许互相访问数据
    • 目的:保护用户隐私

    什么是跨域

    一般来说,当一个请求url的协议、域名、端口三者之间任意一个与当前页面地址不同即为跨域。最常见的就是在一个域名下的网页中,调用另一个域名中的资源。

    JSONP 跨域

    我们在跨域的时候,由于当前浏览器不支持CROS,或者因为某些原因不支持CROS,那我们就必须用
    JSONP来跨域。于是请求一个JS文件,这个JS文件会执行一个回调,回调里面就有我们的数据。我们当前网站创建一个script标签去请求另外一个网站的JS,JS里面会夹带我要的数据,而且这个JS会调用我写的一个全局函数来运行,就可以把数据给我了.这个回调的名字是我们随机生成的随机数,我们把这个回调的名字以callback的参数传给后台,后台就会把这个函数返回给我们,再执行

    优点:

    • 兼容IE
    • 跨域

    缺点:

    • 因为script标签引用,得不到详细信息:状态码、header,只知道成功失败。
    • 因为是script标签,只可以发get请求,当然不能支持POST

    CORS 跨域

    CORS,全称Cross-Origin Resource Sharing ,是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。

    详细做法:

    Access-Control-Allow-Origin: MDN文档

    作者:过程是风景
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/justcho/p/13472775.html
Copyright © 2011-2022 走看看