浏览器拦截跨域请求处理方法

简介:

转自原文 浏览器拦截跨域请求处理方法

 

解决跨域的解决办法有多种,比如jsonp,或者apache 或者nigix里面配置,或者后端的php或者java中配置 cross orgion。

在网上搜了一圈,发现处理方式都差不多,但是我们得清楚这些到底怎么用。

先看下这段代码:

<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

这段代码作用是啥,其实这个是解决flash跨域的解决办法。

看淘宝的使用方式:

https://www.taobao.com/crossdomain.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy> <allow-access-from domain="*.taobao.com" /> <allow-access-from domain="*.taobao.net" /> <allow-access-from domain="*.taobaocdn.com" /> <allow-access-from domain="*.allyes.com" /> </cross-domain-policy>
复制代码

一般crossdomain.xml的位置是放到项目的根目录下。

下面举例关于字体跨域的解决方法:

直接了当了说,解决此类问题,最直接的方法就是,就是给被请求的服务器,添加HTTP头响应头,这里提供两种添加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头,添加“

//在被请求的网站上,设置HTTP头,添加
"Access-Control-Allow-Origin:*" //值为*或指定的域名。

 

第三种,使用JSONP格式,即在jQuery中ajax请求参数dataType:'JSONP': 

复制代码
<script> 
    $.ajax({ 
        url:"http://map.oicqzone.com/gpsApi.php?lat=22.502412986242&lng=113.93832783228", 
        type:'GET', 
        dataType:'JSONP',  // 处理Ajax跨域问题
        success: function(data){ $('body').append( "Name: " + data ); } }); </script>
复制代码

当然请求方式只能是get。

 

更多同源的问题,可参考文章进行查看。浏览器的跨域问题以及解决方案 

 

 

 

 

 

参考地址:关于跨域策略文件crossdomain.xml文件

浏览器拦截跨域请求处理方法(同源策略不允许读取XXX上的远程资源)

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。





    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7204328.html ,如需转载请自行联系原作者


相关文章
|
9月前
|
监控 JavaScript 数据库
Umami:自建网站访问统计服务,突破浏览器广告拦截
本文介绍了开源网站访问统计系统 Umami,一款可替代 Google Analytics 的工具。Umami 支持私有化部署,确保数据完全可控,保护用户隐私。文章详细讲解了 Umami 的部署方式(如 Vercel 云函数、Docker Compose 和 1 Panel)及基本使用方法,包括添加网站和集成跟踪代码。此外,还分享了突破浏览器广告拦截的技巧,例如修改 JS 脚本文件名和服务端接口名称。通过这些优化,可有效避免统计代码被拦截,帮助站长获取更准确的访问数据。
491 0
|
IDE 开发工具
Edge浏览器——如何设置跨域请求
Edge浏览器——如何设置跨域请求
1215 0
【插件】浏览器广告拦截插件| 浏览器搜索广告横飞怎么办
【插件】浏览器广告拦截插件| 浏览器搜索广告横飞怎么办
355 0
|
JavaScript 安全 前端开发
浏览器原理 31 # 同源策略:为什么XMLHttpRequest不能跨域请求资源?
浏览器原理 31 # 同源策略:为什么XMLHttpRequest不能跨域请求资源?
190 0
浏览器原理 31 # 同源策略:为什么XMLHttpRequest不能跨域请求资源?
|
Web App开发 JavaScript 安全
window.open(url)多次打开下载链接被浏览器拦截问题解决方案,js实现循环访问多个下载链接
window.open(url)多次打开下载链接被浏览器拦截问题解决方案,js实现循环访问多个下载链接
1137 0
window.open(url)多次打开下载链接被浏览器拦截问题解决方案,js实现循环访问多个下载链接
通过谷歌插件postman interceptor 拦截浏览器请求
通过插件拦截所有请求 对请求内容进行分析 具体参考链接参考正文链接,安装过程中的具体开启流程参考附件图片
465 0
通过谷歌插件postman  interceptor 拦截浏览器请求
|
Web App开发
Chrome 浏览器关闭了360主页防护后每次打开仍然是360导航问题排查与处理方法,不卸载360流氓软件解决chrome浏览器主页锁定问题
Chrome 浏览器关闭了360主页防护后每次打开仍然是360导航问题排查与处理方法,不卸载360流氓软件解决chrome浏览器主页锁定问题
2353 0
Chrome 浏览器关闭了360主页防护后每次打开仍然是360导航问题排查与处理方法,不卸载360流氓软件解决chrome浏览器主页锁定问题
window.open被浏览器拦截终极解决方案
window.open被浏览器拦截终极解决方案
346 0
|
前端开发
window.open 被浏览器拦截解决方案
对于ajax返回后在打开新窗口,可以在用户点击后就打开一个空白窗口,然后再返回成功后给空白窗口一个url,这样就不会被拦截了
445 0