• 如何配置解决跨域的问题


    后台使用PHP编写简单的接口

    网上有很多关于如何配置header来解决跨域请求的问题,如下所示:

     1     // 指定允许其他域名访问  
     2     header('Access-Control-Allow-Origin:http://127.0.0.1:8282');  
     3     // 响应类型  
     4     header("Access-Control-Allow-Methods:HEAD,POST,GET,PUT,DELETE,OPTIONS"); 
     5     header("Access-Control-Max-Age:60"); 
     6     header('Access-Control-Allow-Credentials: true');
     7     // 响应头设置  
     8     header('Access-Control-Allow-Headers:x-requested-with,content-type'); 
     9 
    10     $res = array("name" => "Echo","age" => 26);
    11     
    12     echo json_encode($res);
    13     return json_encode($res);
    14     

    关于代码中配置的header,我曾尝试很多次仍没有办法成功,现在针对自己的经验讲解注意问题:

    1. Access-Control-Allow-Origin:http://127.0.0.1:8282或者
      Access-Control-Allow-Origin:*  两者配置都可以,但是要注意的是
      http://127.0.0.1:8282以及*都不需要带上单引号或者双引号!
    2. Access-Control-Allow-Credentials: true  如若配置该项,则在前端请求代码中的头部信息中同样也要配置
      //跨域时,cookie添加到请求中
      $httpProvider.defaults.withCredentials = true;
    3. 在以上配置好后如果遇到预检OPTIONS请求,则不妨试试
      Access-Control-Allow-Headers:x-requested-with,content-type  在options预检后,浏览器会自动重新发送正常的请求,像这样:

        

        

    前端代码中在配置url时

    url="http://127.0.0.1/study/phpServer/test.php";
    一定不要忘记加上http://
    如果url=127.0.0.1/study/phpServer/test.php
    不然请求地址会在前面加上当前浏览地址:

    http://127.0.0.1:8282/127.0.0.1/study/phpServer/test.php
    从而请求不到数据

     另外据网上信息提示,如果要在

    Access-Control-Allow-Origin处理多个域的话,如下设置
    $sorigin = array(  
        'domain1',  
        'domain2'  
    );  
      
    if(in_array($origin, $origins)){  
        header('Access-Control-Allow-Origin:'.$origin);  
        header('Access-Control-Allow-Methods:POST');  
        header('Access-Control-Allow-Headers:x-requested-with,content-type');  
    }  
    

      但是暂时还没有试验~


  • 相关阅读:
    JS字符串去重
    svn回退到某一版本
    WebStorm格式化代码4个空格设置
    DevExpress中 的DataGrid每一行根据其类型显示控件的种类
    各大系统刷新DNS缓存方法
    Kali Linux中前十名的Wifi攻击工具
    CentOS远程执行漏洞
    判断是否移动端的几种方法
    笔记
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/echo2016/p/5395283.html
Copyright © 2020-2023  润新知