问题描述

1、首先让我们先看一张图

2、从图中,我们可以很清楚的看到当http请求的站点访问https的资源的时候会报出“Cross-Origin”跨域的问题。为什么会出现这样的错误,这是因为涉及到“同源策略”的问题。。。blablabla……

3、下面依次说如何解决这个问题

问题解决

1、我们再来看一下报错信息,报错信息中有一段写明“Access-Control-Allow-Origin”header的字样,我们可以由此看出会不会在服务端add header即可呢?

2、顺着这个思路,在nginx配置中加入了这样一句:

add_header 'Access-Control-Allow-Origin' '*';

如图所示:

3、重启之后,其他内容好了(例如,css文件等)发现字体(font)文件还是有问题的,如图所示:

这是为什么……!字体文件的Context-Type却是”text/html"!!!而且还没有像别的东东那样的  Access-Control-Allow-Origin:*

4、于是乎,继续增加了这样一句(如图所示),指定eot、ttf、woff字体文件 强制加入header信息

5、觉得这样万事大吉 就错了、错了、错了……重要的事情说三遍(这个地方是个巨坑、当时就是在下面要说的地方浪费了好长时间,不过最后还是解决了,不墨迹了,我们继续……)

6、突然发现,哦,是不是因为我没加mime.types呢?(这个必须要加的,因为它决定文件的Content-Type)这个应该早点想起来的……blablabla…… 赶紧加上 回来再看……

于是乎加了三行:

application/x-font-woff woff woff2; 
font/ttf ttf; 
font/opentype otf;

【要删除 application/font-woff     woff;  这行删掉(mime.types 第27行) 否则会报duplicate的warning】

7、再次重启,再看!

Oh,My God  还是如此。。。

8、拿出杀手锏,查询log吧。

果然发现一个致命问题

哥,为啥你要去$NGINX_HOME/html目录去找啊,你不应该是从/www/xinghuo-img去找吗?(⊙o⊙)…

(旁白:谁告诉你 "location /" 和“location ~"会共用他们其中一个的root了。。。。

好吧……我错了。

9、于是乎,我在“location ~"也加一个root好了:)

10、“最后”一次重启,测试、搞定!如图所示:

后记

1、之前看安全测试的书籍中了解到了“同源策略”,今天是见识并实践了一下跨域问题的解决。涨姿势了!受益匪浅!

2、其实最后那个配置文件,可以修改为(如图所示),我姑且认为可以设置一个root全局变量,嘿嘿。

3、还是得继续学习、钻研呀……fighting。

4、它折磨我从两点到四点……还好顺利解决了。记录下来以便大家以后不用再次踩坑,谢谢!blablabla……

5、遇到问题及时查log非常重要、非常重要、非常重要……

如何搞定前端资源服务跨域问题之nginx篇的更多相关文章

  1. 一篇搞定vue请求和跨域

    vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 axios是一个基本Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对v ...

  2. 用nginx的反向代理机制解决前端跨域问题在nginx上部署web静态页面

    用nginx的反向代理机制解决前端跨域问题在nginx上部署web静态页面 1.什么是跨域以及产生原因 跨域是指a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同,或是a页面为ip地 ...

  3. 【微服务】之七:轻松搞定SpringCloud微服务-API权限控制

    权限控制,是一个系统当中必须的重要功能.张三只能访问输入张三的特定功能,李四不能访问属于赵六的特定菜单.这就要求对整个体系做一个完善的权限控制体系.该体系应该具备针区分用户.权限.角色等各种必须的功能 ...

  4. 【微服务】之二:从零开始,轻松搞定SpringCloud微服务系列--注册中心(一)

    微服务体系,有效解决项目庞大.互相依赖的问题.目前SpringCloud体系有强大的一整套针对微服务的解决方案.本文中,重点对微服务体系中的服务发现注册中心进行详细说明.本篇中的注册中心,采用Netf ...

  5. 【微服务】之五:轻松搞定SpringCloud微服务-调用远程组件Feign

    上一篇文章讲到了负载均衡在Spring Cloud体系中的体现,其实Spring Cloud是提供了多种客户端调用的组件,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使 ...

  6. 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心

    在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...

  7. 从零开始,轻松搞定SpringCloud微服务系列

    本系列博文目录 [微服务]之一:从零开始,轻松搞定SpringCloud微服务系列–开山篇(spring boot 小demo) [微服务]之二:从零开始,轻松搞定SpringCloud微服务系列–注 ...

  8. 【微服务】之四:轻松搞定SpringCloud微服务-负载均衡Ribbon

    对于任何一个高可用高负载的系统来说,负载均衡是一个必不可少的名称.在大型分布式计算体系中,某个服务在单例的情况下,很难应对各种突发情况.因此,负载均衡是为了让系统在性能出现瓶颈或者其中一些出现状态下可 ...

  9. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

随机推荐

  1. C#基础:集合

        C#中的数组实现为 System.Array 类的实例,它们只是集合类(Collection Classes)中的一种类型.集合类一般用于处理对象列表,其功能比简单数组要多,功能大多是通过实现 ...

  2. VCS仿真生成vpd文件(verilog)

    VCS仿真生成vpd文件(verilog) 一.环境与文件 Linux平台  csh环境 VCS 64bit 代码文件请参考<一个简单的Verilog计数器模型> 二.开始仿真 1.com ...

  3. CSS background 属性 总结

    CSS background 属性总结

  4. (转)[老老实实学WCF] 第二篇 配置WCF

    在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections.Generic; u ...

  5. Asus 安装 windows 7

    尊敬的华硕用户您好, 您是不是要让S400从usb和光驱启动呢.可以按如下步骤操作,1.开机的时候长按F2键进入BIOS界面,通过方向键进入[Boot]菜单,通过方向键选择[Lunch CSM]选项, ...

  6. 《第一行代码》学习笔记20-广播接收器Broadcast_Receiver(3)

    1.强制用户下线的逻辑并不是写在MainActivity里的,而是应该写在接收这条广播的广播接收器里面,这样强制下线的功能就不会 依附于任何的界面,不管是在程序的任何地方,只需要发出一条广播,就可以完 ...

  7. Light oj 1030 二分查找

    1088 - Points in Segments   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...

  8. meta property=og标签含义及作用

    不理解Meta Property=og标签是什么意思,以及对SEO的影响,看一下下面的介绍.Meta Property=og标签是什么呢?og是一种新的HTTP头部标记,即Open Graph Pro ...

  9. 串口屏之------Usart GPU 使用手册

    Usart GPU 使用手册 文档更新日期 更新内容 2014-9-10 C编程sprintf问题 2014-8-8 版本程序1.0,升级了自定义波特率部分 ------ 原始版本 第一部分:基础应用 ...

  10. pcduino通过USB方式刷机

    最近买了块pcduino来玩,一开始也不知道怎么入手使用,就想先学着网上来刷机,可以用TF卡来刷机,也可以用U盘来刷机.由于手上只有优盘,所以采用了第二种方式.具体方法参考了网上. 本文非原创,原文来 ...