zoukankan      html  css  js  c++  java
  • 使用CORS(跨站资源共享Cross-Origin Resource Sharing) 来实现跨域访问

    同源策略

    如果两个页面拥有相同的协议(protocol),端口(如果指定),和主机,那么这两个页面就属于同一个源(origin)
    下表给出了相对http://store.company.com/dir/page.html同源检测的示例:

    URL	    结果	     原因
    http://store.company.com/dir2/other.html	成功	 
    http://store.company.com/dir/inner/another.html	成功	 
    https://store.company.com/secure.html	失败	     协议不同
    http://store.company.com:81/dir/etc.html	失败	     端口不同
    http://news.company.com/dir/other.html	失败	    主机名不同
    

    跨域问题

    出于安全考虑,浏览器会限制脚本中发起的跨站请求。比如,使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守同源策略。
    跨域并非浏览器限制了发起跨站请求,而是跨站请求可以正常发起,但是返回结果被浏览器拦截了。最好的例子是CSRF跨站攻击原理,请求是发送到了后端服务器无论是否跨域!
    注意:有些浏览器不允许从HTTPS的域跨域访问HTTP,比如Chrome和Firefox,这些浏览器在请求还未发出的时候就会拦截请求,这是一个特例。

    服务器端的配置

    增加几个header就行,参见MDN:HTTP访问控制(CORS)

    location ~ .php(/.*)*$
    {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
        略......
    }
    

    Access-Control-Allow-Origin
    指定一个允许向该服务器提交请求的URI.对于一个不带有credentials的请求,可以指定为'*',表示允许来自所有域的请求.
    举个栗子,允许来自 http://mozilla.com 的请求,你可以这样指定:

    Access-Control-Allow-Origin: http://mozilla.com
    
  • 相关阅读:
    Pyton 练习题2
    Python 知识点练习
    pycharm 汉化
    关于sublime编辑Python的安装与配置
    python练习题
    虚短和虚断
    OSI的7层协议
    5V电压的制作
    三角波,方波,正弦波的转换
    单片机不工作,晶振是否起振怎么检查
  • 原文地址:https://www.cnblogs.com/jcuan/p/5929454.html
Copyright © 2011-2022 走看看