ie浏览器设置允许跨域_解决IE浏览器字体跨域的2种办法

项目中用到了矢量图标字体,chrome浏览器都好好的,IE浏览器提示字体跨域了,应该是不同浏览器策略的问题。错误提示如下:

CSS3117: @font-face 跨源请求失败。资源访问受限。

iconfont.eot

CSS3117: @font-face 跨源请求失败。资源访问受限。

iconfont.woff

CSS3117: @font-face 跨源请求失败。资源访问受限。

iconfont.ttf

我找到了2种方式解决此问题。

方式1:修改web服务器的配置(推荐)

拿nginx来说,在对应的域名配置下加入“add_header Access-Control-Allow-Origin *;”(*号也可以改为具体的某个域名),如下:server {

listen       80;

......

location / {

add_header Access-Control-Allow-Origin *;

......

}

}

如果是其他web服务器,如:apache、IIS,请参考相应的方法解决。次方式较方便快捷,但是如果不方便修改web服务器配置,可以通过下面的方式2解决。

方式2:通过base64的形式

②上传“ttf”格式的字体文件,Family support和Base64 encode选项打开。

③点击convert按钮后,会生成一个下载文件,如下图,下载即可。

④下载下来后,得到一个压缩文件,将压缩文件解压,网站使用stylesheet.css即可。

处理完后,刷新浏览器,图标便出来了。至此,解决完毕。

跨域资源共享(Cross-Origin Resource Sharing,简称CORS)是一机制,允许网页从不同的源获取资源,而不仅仅是同源策略下可以访问的内容。当IE浏览器(Internet Explorer,旧版浏览器)需要访问其他域名下的API或资源时,如果服务器没有默认启用CORS,前端开发者可以在JavaScript中通过XMLHttpRequest对象设置一些特定的头信息来请求跨域。 以下是前端的基本配置步骤: 1. **创建 XMLHttpRequest 对象**: ```javascript var xhr = new XMLHttpRequest(); ``` 2. **设置请求头部(Access-Control-Allow-Origin)**: - 如果你想要开放给所有来源,你可以设置`Access-Control-Allow-Origin`为`*`,但这通常不是一个安全的做法,因为这会暴露服务端数据给任意网站。 - 更推荐的做法是在响应头部指定具体的源,例如: ```javascript xhr.setRequestHeader("Origin", "http://your-domain.com"); ``` 3. **发送异步请求**: ```javascript xhr.open("GET", "https://api.example.com/data", true); xhr.onreadystatechange = function() { // 处理响应... }; xhr.send(); ``` 4. **预检请求( Preflighted requests)**: IE9 及以上版本对某些类型的 CORS 请求(如带有 `PUT`, `DELETE` 等方法的请求)需要先发送一个OPTIONS请求(即“预检请求”),确认服务器是否支持跨域。前端也需要处理这个阶段。 注意,服务器端也需要正确配置CORS头信息,如`Access-Control-Allow-Methods`、`Access-Control-Allow-Headers`等,才能有效地支持跨域请求。前端只能控制客户端的行为,改变不了服务器的跨域策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值