• 网站认证
  • 教程:6,665|
  • 话题:6,319|
  • 评论:51|
  • 会员:219|
  • 注册
  • 查看作者
  • 网站出现浏览器拦截跨域请求怎么办(已阻止跨源请求:同源策略禁止读取远程资源)

    最近我在做网页多域登录的过程中,出现浏览器无法兼容问题,出现问题如下图
    网站出现浏览器拦截跨域请求怎么办(已阻止跨源请求:同源策略禁止读取远程资源)
    这种情况会出现在一个页面调用多个登录出现的问题,需要远程像服务器发送请求需要在HTTP页头响应头加入如下代码
    第一种,就是在程序中添加HTTP头:

    如: Response.Headers.Add("Access-Control-Allow-Origin", "*");
    // JSON
    {
      'Access-Control-Allow-Origin': '*', 
    }
    // HTML
    <meta http-equiv="Access-Control-Allow-Origin" content="*">
    // PHP
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

     

    加入此代码的方法就是告知浏览器,这个资源是运行远程域名所访问的,代码中*可以替换成自己的域名。安全的话建议用*。
    第二种,如果用的服务器,动手添加HTTP响应头。IIS6.0为例:
    在被请求的网站上,设置HTTP头,添加
    “/”Access-Control-Allow-Origin:*” //值为*或指定的域名。
    第三种,使用JSONP格式,即在jQuery中ajax请求参数dataType:’JSONP’:

    <script> $.ajax({ url:"http://www.niuqi.net/", type:'GET', dataType:'JSONP', // 处理Ajax跨域问题 success: function(data){ $('body').append( "Name: " + data ); } }); </script>
    <?xml version="1.0"?>
    <cross-domain-policy>
      <allow-access-from domain="*" />
    </cross-domain-policy>

    一般完成以上工作,就可以了。网上还有说在被请求服务器根目录下创建:”crossdomain.xml”的文件。内容格式如下:

  • 0
  • 0
  • 0
  • 201
  • 请登录之后再进行评论

    登录
  • 做任务
  • 实时动态
  • 偏好设置
  • 单栏布局 侧栏位置: