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

    ?>

    杂念太多,必然根基浅薄
  • 相关阅读:
    团队作业——系统设计
    团队作业—预则立&&他山之石
    Alpha 冲刺报告2
    Android:Date、String、Long三种日期类型之间的相互转换
    冲刺阶段第一天
    需求分析答辩总结
    用ExifInterface读取经纬度的时候遇到的一个问题
    项目uml设计
    项目选题报告答辩总结
    深夜睡不着,去某乎爬点照片
  • 原文地址:https://www.cnblogs.com/starshine-zhp/p/12841018.html
Copyright © 2011-2022 走看看