1. 你是否厌倦了老是依赖后台去处理跨域,把握不了主动权
  2. 你是否想模仿某个app倒腾一个demo,却困于接口无法跨域

那么很幸运,接下来我将现实不依赖任何后台,随心所欲的想访问哪个域名就访问哪个!

下载nginx

地址: http://nginx.org/en/download.html

注意: 存放目录中不能含有中文

nginx配置

强大的nginx反向代理工具,有很多东西值得我们去研究,这里我只贴出核心代码,其他的还有待深入。例如我想做一个豆瓣的高仿app,调用 搜索图书接口

nginx.conf server

完整配置文件

https://github.com/helijun/react-learn/blob/master/nginx/conf/nginx.conf

启动nginx

将上面的配置文件替换你本地的nginx.conf

更改ip地址,server监听端口

cd到nginx存放的根目录

start nginx.exe

到此为止,大功告成,没错就是这么简单。测试效果:

另外附上nginx常用的几个命令

start nginx.exe //启动
nginx.exe -s reload //重启
nginx.exe -s stop //快速停止
nginx.exe -s quit //完整有序停止

总结

其实前端跨域问题在现在的前后端分离的项目中,应该是说普遍存在的,之前也写过相关的文章总结 jsonp跨域请求优雅的封装ajax,含跨域,但是都基本上是要后台配合的,并且还有很多局限性。那么现在这种方式,就真的很随心所欲的,比如我现在还想代理到百度的api,那么只要在那个server中再添加一个location即可,如:

location /baidu {
rewrite ^/baidu/(.*)$ /$1 break;
proxy_pass https://api.baidu.com;
}

注意事项

或许你发现了,所有的请求都添加了一个'douban'前缀,那么在真实的项目中,务必将这个前缀设置为一个变量,然后所有的ajax请求url都拼接这个前缀,防止后续如果有变更导致牵一发而动全身。

固定ip

为了防止ip变化导致nginx配置失效,我这里固定ip为 192.168.1.168

打开网络和共享中心->本地连接->属性->双击Internet协议版本4(TCP/IPv4)属性

使用nginx实现纯前端跨越的更多相关文章

  1. JS魔法堂之实战:纯前端的图片预览

    一.前言 图片上传是一个普通不过的功能,而图片预览就是就是上传功能中必不可少的子功能了.在这之前,我曾经通过订阅input[type=file]元素的onchange事件,一旦更改路径则将图片上传至服 ...

  2. Sharepoint页面项目展示画廊纯前端实现,后端用list/library简单维护

    需求背景: Sharepoint页面项目展示画廊.图片+文字,要求图片与文字用Sharepoint Library维护,然后在sharepoint页面上被调用,生成项目展示画廊. 解决方案(纯前端), ...

  3. 利用html5 canvas实现纯前端上传图片的裁剪

    今天跟大家分享一个前端裁剪图片的方法.许多网站都有设置用户头像的功能,用户可以选择一张本地的图片,然后用网站的裁剪工具进行裁剪,然后设置大小,位置合适的头像.当然,网上也有一些用js写的诸如此类裁剪的 ...

  4. react纯前端不依赖于打包工具的代码

    ####react最基础的语法和不依赖环境的纯前端免编译代码 参照:http://www.ruanyifeng.com/blog/2015/03/react.html 注意事项:1.必须放倒服务器上, ...

  5. Web纯前端“旭日图”实现元素周期表

    一.什么是旭日图 旭日图是在Excel 2016中新增的一种图表.有些类似饼图,饼图的优势是可以显示占比.但是饼图只能显示单级数据.旭日图用来表示多层级数据的占比.旭日图以一种分层方式显示,非常适合用 ...

  6. Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)

    Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇--纯前端多页面) @(HTML/JS) 一般来说,使用vue做成单页应用比较好,但特殊情况下,需要使用多页面也有另外 ...

  7. 纯前端导出pdf文件

    纯前端js导出pdf,已经用于生产环境. 工具: 1.html2canvas,一种让html转换为图片的工具. 2.pdfmake或者jspdf ,一种生成.编辑pdf,并且导出pdf的工具. pdf ...

  8. 微信授权、获取用户openid-纯前端实现——jsonp跨域访问返回json数据会报错的纯前端解决办法

    近来,倒霉的后台跟我说让我拿个openid做微信支付使用,寻思很简单,开始干活. 首先引导用户打开如下链接,只需要将appid修改为自己的就可以,redirect_url写你的重定向url https ...

  9. HTML实现包含公共部分:通过ECMA6的模块化,纯前端实现类似jsp:include的功能

    以前一直是用 jsp:include 的方式来引入 html 头部的公共部分 php也有类似的方式 但以上两种,个人感觉都并不纯粹,本着折腾的精神,优化原有代码,解耦合 使用 ECMA6 的模块化方式 ...

随机推荐

  1. Android APP 内部捐赠实现(支付宝&微信)

    Android APP 内部捐赠实现(支付宝&微信) 目前支持 支付宝和 微信. 项目地址:https://github.com/didikee/AndroidDonate https://p ...

  2. 初学Python(三)——字典

    初学Python(三)——字典 初学Python,主要整理一些学习到的知识点,这次是字典. #-*- coding:utf-8 -*- d = {1:"name",2:" ...

  3. 练习半音阶口琴--->>修理推键所感

    我想,自己现在已经是完全迷上口琴了,在最近练习的时候自己发现推键推到最后的时候,推不过去了,以为是摩擦的问题,于是刻了轨道来减少摩擦,但是效果并不是很明显,于是,自己开始起了买新口琴的心,想换个好一点 ...

  4. Java项目 打war包方法

    我们可以运用DOS命令来手工打war包: 首先,打开DOS命令行,敲入"jar",我们发现它提示不是内部或外部的命令这样的错误,这时八成是你的JAVA环境没有配置好,我们可以用JA ...

  5. setInterval()的时间参数无法随参数的变化而变化

    2017-04-18 写了个随机抽奖的小案例,打算随机跳动十次,每次变化的时间越来越长,也就是跳动的速度越来越慢,结果发现setInterval的时间参数并不会随着变化. <!--案例的结构如下 ...

  6. Java虚拟机垃圾回收机制

    在Java虚拟机中,对象和数组的内存都是在堆中分配的,垃圾收集器主要回收的内存就是再堆内存中.如果在Java程序运行过程中,动态创建的对象或者数组没有及时得到回收,持续积累,最终堆内存就会被占满,导致 ...

  7. CentOS Linux 系统 安装oracle 11g

    CentOS Linux 系统 安装oracle 11g 在Linux系统上安装oracle是比较麻烦,需要配置各种变量啥的,o(︶︿︶)o ,但是没办法,有些东西你总的去接触,而且接触理解的越早越深 ...

  8. hexdump命令的使用

    hexdump命令是Linux下的打印16进制的利器,它可以按我们指定的格式输出16进制,特别有用,配合eeprom来用简直是绝配. 今天我们来介绍一个hexdump命令的使用: 首先我们准备一个测试 ...

  9. [NOIP2015] 斗地主 大爆搜

    考试的时候想了半天,实在是想不到解决的办法,感觉只能暴力..然后暴力也懒得打了,小数据模拟骗30分hhh 然而正解真的是暴力..大爆搜.. 然后我的内心拒绝改这道题(TAT) 不过在wcx大佬的帮助下 ...

  10. pentaho专题系列之kettle篇--kettle源码编译

    最近看了一些kettle的文章,都是kettle7.0以前的,已经跟不上时代了.截止笔者写这篇文章的时候,github上面的已经是7.1.0.3了,而且是发行版的,最新的快照版本已经是8.0的了.基于 ...