• Linux
  • apache
  • centos
  • Git版本管理
  • Linux基本命令
  • linux配置与优化
  • Nginx
  • PHP
  • Redis
  • Supervisor
  • Swoole
  • windows
  • THINKPHP
  • 开发者手册
  • Chat GPT / Open Ai
  • php程序出现接口访问跨域的解决办法

    全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2023年08月30日 23:42:22
  • 所属分类:PHP+MySql, PHP原生源码
  • 阅读次数:209次阅读
  • 标签:
  • 我们通常在进行接口调用时,会出现报错:

    Access to XMLHttpRequest at ‘http:/xxxxxxxxxx from origin ‘http://xxxxxxxxxx’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

    遇到这个错误,其实是因为跨域了,那么什么是跨域访问呢?

    我们通常在进行接口调用时,会出现报错:

    Access to XMLHttpRequest at ‘http:/xxxxxxxxxx from origin ‘http://xxxxxxxxxx’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

    遇到这个错误,其实是因为跨域了,那么什么是跨域访问呢?

    就是不同域名,端口之间相互调用数据,会出现验证失败的情况。

    那么应该怎么解决跨域报错请求呢?其实很简单,在php中设置头就行。

    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
    header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');

    同时借鉴其他答案,多域名实现跨域:

    // 可跨域域名列表
    $domains = [
    'http://localhost:8080',
    'http://test.qqqqq.cn',
    ];
    $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
    if (in_array($origin, $domains)) {
    header('Access-Control-Allow-Origin:' . $origin);
    }
    // 允许的请求头信息
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
    //在请求头里加上需要允许的 header("Access-Control-Allow-Headers: Origin, 名称);
    // 允许的请求类型
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
    // 允许携带证书式访问(携带cookie)
    header('Access-Control-Allow-Credentials:true');

    顶一下
    (0)
    100%
    订阅 回复
    踩一下
    (0)
    100%
    » 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 【上一篇】
  • 【下一篇】
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言

    您必须 [ 登录 ] 才能发表留言!