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

本文介绍了在浏览器中遇到跨域访问资源问题的解决方案。通过在服务器端添加特定的HTTP响应头,如'Access-Control-Allow-Origin',允许远程域名访问资源。文中提供了在程序中直接添加HTTP头的代码示例,以及在IIS6.0服务器上配置HTTP头的方法。此外,还提及了使用JSONP进行跨域请求的jQuery AJAX示例。确保正确设置这些头可以有效解决跨域问题,保障CSS、JS、Ajax等资源的正常加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用

在浏览器请求中,出现跨域访问资源的问题,我们肯定会遇到。如果跨域请求被阻止,有可能导致css、js 、ajax请求、font字体等资源出现无法正常访问的问题。接下来,就介绍下解决同源策略不允许读取远程资源的问题。

解决此类问题,最直接的方法就是,就是给被请求的服务器,添加HTTP头响应头,这里提供两种添加HTTP头的方法:

第一种,就是在程序中添加HTTP头:

如: Response.Headers.Add("Access-Control-Allow-Origin", "*");

// JSON

{

'Access-Control-Allow-Origin': '*',

}

// HTML

// 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':

$.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 );

}

});

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

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2020-07-31 09:37

浏览 67

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值