美文网首页
PHP接口跨域header头以及Session跨域方法

PHP接口跨域header头以及Session跨域方法

作者: 呦丶耍脾气 | 来源:发表于2020-04-13 15:22 被阅读0次

跨域问题一直都很纠结的,最近做项目是真正遇到了。现代浏览器针对不同域名之间的ajax请求,一般情况下会阻止你获取到ajax返回内容(即使是1.a.com和2.a.com也算跨域),但是请求是真实发生的。下面来讲一下,怎么在PHP后端让浏览器支持跨域请求。

// 允许所有跨域请求
header('Access-Control-Allow-Origin: *');
// 只允许http://www.baidu.com下发来的跨域请求
header('Access-Control-Allow-Origin: http://www.baidu.com');

但是我们在开发接口时,可能会提供给很多个客户网站使用。如果单纯使用*或者具体域名就不太科学了,这时候我们需要进行动态的判断处理。

// 定义一个允许跨域请求接口的域名列表,这里你可以用配置也可以用其它形式,我这里只是用$GLOBALS简单演示一下
$GLOBALS['API_ALLOW_ORIGINS'] = array(
    'baidu.com',
    'yurunsoft.com'
);
// 判断是否有origin请求头
if(isset($_SERVER['HTTP_ORIGIN']))
{
    // 遍历域名列表判断
    foreach($GLOBALS['API_ALLOW_ORIGINS'] as $domain)
    {
        if($_SERVER['HTTP_ORIGIN'] === $domain || substr($_SERVER['HTTP_ORIGIN'], -strlen($domain) - 1) === '.' . $domain)
        {
            header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
            break;
        }
    }
}

接下来要解决Session跨域问题,如何让1.a.com和2.a.com的session互通呢?

ini_set('session.cookie_domain', '.a.com');

然后在header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);下面加上

header('Access-Control-Allow-Credentials: true');

前端允许跨域

相关文章

  • PHP接口跨域header头以及Session跨域方法

    跨域问题一直都很纠结的,最近做项目是真正遇到了。现代浏览器针对不同域名之间的ajax请求,一般情况下会阻止你获取到...

  • Vue 项目解决跨域问题

    vue 项目中解决接口跨域的方法 1.简单粗暴直接用jquery 的jsonp 来调用跨域跨域接口 2.如果本地引...

  • 前后端完全开发问题

    php 解决跨域问题 header('Access-Control-Allow-Origin:http://www...

  • AnugularJS 的跨域

    通过 php 桥接跨域 实际上并非跨域,用 Php 文件引入进来,同源下执行 Php 文件,所以并非跨域 $htt...

  • Session跨域共享解决方案

    一、Session跨域所谓session跨域就是摒弃了系统(tomcat)提供的session,而使用自定义的类似...

  • vue简单接口封装 跨域问题处理

    vue接口封装: 第一步:解决跨域 接口请求,一般都会碰到跨域问题,在vue项目中,我们采用页面代理的方法解决跨域...

  • 用express实现CORS跨域

    跨域请求头 cors express 跨域请求

  • 响应头设置跨域和Spring注解跨域

    CORS跨域原理详解Spring解决跨域 响应头设置跨域 Spring注解跨域@CrossOrigin 可添加到方...

  • Ajax 跨域请求

    如今大都要用到跨域的方法请求数据,网上的方法也是各式各样,这里我重点介绍两种不同的跨域形式。 一.跨域请求接口 主...

  • Ajax 跨域请求

    如今大都要用到跨域的方法请求数据,网上的方法也是各式各样,这里我重点介绍两种不同的跨域形式。 一.跨域请求接口 主...

网友评论

      本文标题:PHP接口跨域header头以及Session跨域方法

      本文链接:https://www.haomeiwen.com/subject/hlzgmhtx.html