zoukankan      html  css  js  c++  java
  • 跨域

    什么是跨域

    域名的组成

    http:// www . test.com 80 / index.html
    协议 子域名   主域名   端口号   请求资源地址

    说明:当协议、子域名、主域名、和端口号有任意一个不同时,就算是不同域

    跨域:不同域之间相互请求资源,就是跨域

    跨域的解决方案

    Jsonp :需要目标服务器配合一个callback函数

          JSONP只支持GET请求

    CORS解决跨域 :跨域访问的请求头中存在Origin的字段,用来记录当前的访问域名,我们可以再服务端增加一个响应头Access-Control-Allow-Origin来告诉浏览器我们支持它获取就可以了

    //一个域名跨域访问
    <?php header('Access-Control-Allow-Origin:http://127.0.0.1'); $arr = ['code' => 200, 'name' => 'cui']; echo $data = json_encode($arr); ?>

    //多个域名跨域访问

    <?php
    $requestHeader = getallheaders();
    $origin = isset($requestHeader['Origin'])?$requestHeader['Origin']:'';
    switch ($origin) {
    case 'http://127.0.0.1':
    header('Access-Control-Allow-Origin:http://127.0.0.1');
    break;
    case 'http://localhost':
    header('Access-Control-Allow-Origin:http://localhost');
    break;
    default:
    break;
    }
    $arr = ['code' => 200, 'name' => 'cui'];
    echo $data = json_encode($arr);
    //注意,不支持下面这种写法
    //header('Access-Control-Allow-Origin:http://localhost,http://127.0.0.1');
    ?>

    //不推荐这样写,不安全

    <?php
    header('Access-Control-Allow-Origin:*');
    $arr = ['code' => 200, 'name' => 'cui'];
    echo $data = json_encode($arr);

    ?>

    杂念太多,必然根基浅薄
  • 相关阅读:
    BRAFT EDITOR富文本编辑器
    小程序
    单元测试之道读书笔记(二)
    单元测试之道读书笔记(一)
    Blend学习网址
    2014年要读的10本书
    程序员一生必读的书籍
    WPF中PasswordBox控件无法绑定Password属性解决办法
    异步方式向WPF ListBox控件中一条一条添加记录
    10中适合编程的字体
  • 原文地址:https://www.cnblogs.com/starshine-zhp/p/12841018.html
Copyright © 2011-2022 走看看