浏览器拦截跨域请求处理⽅法(已阻⽌跨源请求:同源策略禁⽌
读取远程资源)
无论......都......造句 简单在浏览器请求中,出现跨域访问资源的问题,我们肯定会遇到。如果跨域请求被阻⽌,有可能导致css、js 、ajax请求、font字体等资源出现⽆法正常访问的问题。接下来,就介绍下解决同源策略不允许读取远程资源的问题。
今天就谈下远程字体跨域的问题。江歌被害案完整经过
直接了当了说,解决此类问题,最直接的⽅法就是,就是给被请求的服务器,添加HTTP头响应头,这⾥提供两种添加HTTP头的⽅法:第⼀种,就是在程序中添加HTTP头:
如: Response.Headers.Add("Access-Control-Allow-Origin", "*");
// JSON
{
'Access-Control-Allow-Origin': '*',
}
11时// 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:"map.oicqzone/gpsApi.php?lat=22.502412986242&lng=113.93832783228",
type:'GET',
dataType:'JSONP', // 处理Ajax跨域问题
success: function(data){
$('body').append( "Name: " + data );
}
});
</script>
⼀般完成以上⼯作,就可以了。⽹上还有说在被请求服务器根⽬录下创建:"l"的⽂件。内容格式如下:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
两只小狮子</cross-domain-policy>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论