• PHP下ajax跨域的解决方案之CORS


    由于安全的限制(同源策略,javascript只能访问同域名下的内容),如果需要进行跨域操作,那就免不了要进行跨域。
     
    CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种解决跨域的方案。
    详细的描述还请查阅:
    http://www.w3.org/TR/cors/
    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
    
     
    比如我有两个虚拟主机(apache本地配置),www.a.com和www.b.com
    现在b.com上要获取a.com的登陆信息,比如用户ID,用户名等。
     
    在www.b.com的index.php如下:
    <!doctype html>
    <html lang="zh-cn">
    <head>
    	<meta charset="UTF-8" />
    	<title></title>
    </head>
    <body>
    	<div class="userInfo"></div>
    </body>
    <script type="text/javascript" src="./jquery.js"></script>
    <script type="text/javascript">
    	var url = "http://www.a.com/index.php";
    	$.get(url, {a : "getUserInfo"}, function(data) {
    		$(".userInfo").text("Id:" + data.uid + " Name:" + data.name);
    	}, "json");
    </script>
    </html>
    
    在www.a.com的index.php如下:
    <?php
    $a = !empty($_GET['a']) ? trim($_GET['a']) : ''; 
    
    if($a == 'getUserInfo') {
        echo json_encode(array(
            'uid' => 1,
            'name' => '测试',
        ));
    } else {
        echo '';
    }
    
    在b.com的index.php中用jquery的get方法来发送请求,正常情况下会失败。
    PHP下ajax跨域的解决方案之CORS - 怀素真 - 因上努力 果上随缘
    那么我们只需要在a.com的index.php中添加如下代码,则b.com就可访问。
    header('Access-Control-Allow-Origin: *');
    
    访问结果如下:
    Id:1 Name:测试
    
    当然我们也可以指定可以访问的域名。
    header('Access-Control-Allow-Origin: http://www.b.com');
    
     CORS浏览器的支持情况如下图:
    PHP下ajax跨域的解决方案之CORS - 怀素真 - 因上努力 果上随缘
     
  • 相关阅读:
    K最近邻kNN-学习笔记
    随机森林学习-sklearn
    matplotlib画堆叠条形图
    PCA和SVD最佳理解
    1,机器学习应用概述
    linux unzip 中文乱码解决方法
    python文件、文件夹操作OS模块
    利用pyecharts做地图数据展示
    描述机器学习之神经网络算法原理
    python-pandas 高级功能(通过学习kaggle案例总结)
  • 原文地址:https://www.cnblogs.com/jkko123/p/6294625.html
Copyright © 2020-2023  润新知