• 技术文章 >后端开发 >PHP问题

    php如何破解禁止跨域访问

    (*-*)浩(*-*)浩2019-09-20 09:43:06原创1726
    跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要协议,域名,端口有任何一个的不同,就被当作是跨域。

    如果一个网页可以随意地访问另外一个网站的资源,那么就有可能在客户完全不知情的情况下出现安全问题,所以默认是不允许跨域访问。

    加上需要允许跨域访问配置,如下所示(一下配置内容前不允许有其他任何输出操作):(推荐学习:PHP编程从入门到精通

    //设置允许跨域的 请求源地址
    //方式一:
    header("Access-Control-Allow-Origin: *");//允许所有地址跨域请求
    //方式二:
    header("Access-Control-Allow-Origin: http://localhost:8080");//指定某个地址可以跨域请求,这里只能指定一个
    //方式三:如果要允许多个地址跨域请求可以这样写
    $origin = ['http://localhost:8080','http://localhost:8081'];
    $AllowOrigin = 'http://localhost:8080';
    if(in_array($_SERVER["HTTP_ORIGIN"],$origin))
    {
        $AllowOrigin = $_SERVER["HTTP_ORIGIN"];
    }
    header("Access-Control-Allow-Origin: ".$AllowOrigin );
    ---------------------------------------------------------------------------------
    //设置允许的请求方法,可以用*表示所有,
    header("Access-Control-Allow-Methods: POST");
    ---------------------------------------------------------------------------------
    //如果允许请求携带cookie,此时 origin配置不能用 *,此时前端似乎也要做配置,让请求中携带cookie
    header('Access-Control-Allow-Credentials:true');
    ---------------------------------------------------------------------------------
    //设置允许跨域的请求头,通常会在请求头里面加登录验证信息,那么服务端需要指定允许那些请求头,这里不能用*,多个字段用逗号隔开。
    header('Access-Control-Allow-Headers:token');

    以上就是php如何破解禁止跨域访问的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:php求数组中的最大值 下一篇:php如何判断用户是否在线
    大前端线上培训班

    相关文章推荐

    • php软件工程师是什么• php如何做伪静态处理• php如何在页面之间传递变量的值• php如何预防sql注入

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网