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文档

    作者:过程是风景
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    ios开发 <AppName>-Prefix.pch文件的用法详解
    iOS Block全面分析
    _weak typeof(self) weakSelf = self
    判断当前iOS设备的方法
    修改UITextfield的Placeholder字体的颜色
    uibutton实现左文字右图片
    apache Apache winnt_accept: Asynchronous AcceptEx failed 错误的解决
    android4.0 锁屏实现(转)
    android 代码设置、打开wifi热点及热点的连接(转)
    tomcat arp
  • 原文地址:https://www.cnblogs.com/justcho/p/13472775.html
Copyright © 2011-2022 走看看