zoukankan      html  css  js  c++  java
  • 关于php下开发的跨域问题总结(全)

    跨域问题介绍:

          在A网站中,我们希望使用Ajax来获得B网站中的特定内容。如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的。跨域访问违反了同源策略,同源策略的详细信息可以点击如下链接:Same-origin_policy; 
    总而言之,同源策略规定,浏览器的ajax只能访问跟它的HTML页面同源(相同域名或IP)的资源

    一.

     

    1.    Apache中在被请求的域名所在服务器中打开LoadModule headers_module modules/mod_headers.so 模块,也就是httpd.conf这个文件里面改动,同时在httpd.conf中的

    加上这句话,这个是允许所有域名进行跨域请求

    这样子是只允许这个域名对我进行跨域请求

    在框架内部可以进行:

    2.    如何使Nginx支持跨域呢? 1,进入nginx的html目录 vim ../crossdomain.xml 具体路径: /usr/local/nginx/html/crossdomain.xml 2,在crossdomain.xml中添加:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE cross-domain-policy SYSTEM"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
    <allow-access-from domain="*" />
    </cross-domain-policy>

    结果就是

    注意:默认/usr/local/nginx/html/crossdomain.xml 是不存在的.

    二.Jsonp的方式验证但是仅能用在于get方式的请求方式进行跨域请求

           1.前端的js或者jq请求jsonp的ajax:

    1.      <script type="text/javascript">    

    2.      $.ajax({    

    3.          url:"http://crossdomain.com/services.php",    

    4.          dataType:'jsonp',    

    5.          data:'',    

    6.          jsonp:'callback',    

    7.          success:function(result) {    

    8.              for(var i in result) {    

    9.                  alert(i+":"+result[i]);//循环输出a:1,b:2,etc.    

    10.             }    

    11.         },    

    12.         timeout:3000    

    13.     });    

    14. </script>  

    2.后端的验证:

    1.   function api_jsonp_encode($json)  

    2.      {  

    3.          if (!empty($_GET['callbak'])) {  

    4.              return $_GET['callbak'] . '(' . $json . ')'// jsonp  

    5.          }  

    6.          return $json// json  

    7.      }  

  • 相关阅读:
    工商银行:应用多k8s集群管理及容灾实践
    鸿蒙轻内核源码分析:掌握信号量使用差异
    云图说|ASM灰度发布,让服务发布变得更敏捷、更安全
    解读多云跨云下的容器治理与实践
    互斥锁Mutex:鸿蒙轻内核中处理临界资源独占的“法官”
    带你深入理解Java的IO到底是个啥
    毕业季offer怎么拿?收下这份非典型求职面试指南
    CKEditor 5 摸爬滚打(一)—— 从零构建定制化工程项目
    说起来你可能不信,一个正则就能让页面卡死
    sklearn中的pipeline的创建与访问
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257176.html
Copyright © 2011-2022 走看看