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);

    ?>

    杂念太多,必然根基浅薄
  • 相关阅读:
    bat常用指令记录
    物料主数据MM01扩充时默认值的设置 BADI_MATERIAL_REF
    CK11,CK11N 成本估算数据读取
    VUE中具名插槽和匿名插槽的使用
    VUE+element页面按钮调用dialog
    线程进程随笔
    "反直觉" 的Unity粒子系统API
    一个RingBuffer(C语言)
    一个极其简单(陋)的内存分配器
    nginx 转发接口出现 403 forbidden
  • 原文地址:https://www.cnblogs.com/starshine-zhp/p/12841018.html
Copyright © 2011-2022 走看看