zoukankan      html  css  js  c++  java
  • php跨域访问

    //跨域访问的时候才会存在此字段
    $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';  
       
    $allow_origin = array(  
        'http://www.a.com',  
        'http://www.b.com' 
    );  
       
    if(in_array($origin, $allow_origin)){  
        header('Access-Control-Allow-Origin:'.$origin);  
        header('Access-Control-Allow-Methods:POST');  
        header('Access-Control-Allow-Headers:x-requested-with,content-type');  
    }
    

      

    解决办法:

    1、JSONP:

    使用方式就不赘述了,但是要注意JSONP只支持GET请求,不支持POST请求。

    2、代理:

    例如www.123.com/index.html需要调用www.456.com/server.php,可以写一个接口www.123.com/server.php,由这个接口在后端去调用www.456.com/server.php并拿到返回值,然后再返回给index.html,这就是一个代理的模式。相当于绕过了浏览器端,自然就不存在跨域问题。

    3、PHP端修改header(XHR2方式)

    在php接口脚本中加入以下两句即可:

    header('Access-Control-Allow-Origin:*');//允许所有来源访问

    header('Access-Control-Allow-Method:POST,GET');//允许访问的方式

  • 相关阅读:
    第七组(69)团队展示
    结对编程作业
    同步异步和阻塞非阻塞
    TCP和UDP和IP和HTTP和socket
    http协议
    数据库基础知识
    准确的笑话
    Java实现多线程的方式
    HashMap
    HTTPS与HTTP
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/7516173.html
Copyright © 2011-2022 走看看