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. Round #427 A. Key races(Div.2)

      time limit per test 1 second memory limit per test 256 megabytes input standard input output stand ...

  2. MyBatis String类型传递参数注意事项

    Mybatis查询sql传入一个字符串传参数,报There is no getter for property named 'ids' in 'class java.lang.String'. 后来改 ...

  3. 14. Longest Common Prefix【leetcode】

    14. Longest Common Prefix Write a function to find the longest common prefix string amongst an array ...

  4. JSR-303 Bean Validation 介绍及 Spring MVC 服务端参数验证最佳实践

    任何时候,当要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情. 应用程序必须通过某种手段来确保输入参数在上下文来说是正确的. 分层的应用很多时候同样的数据验证逻辑会出现在不同的层,这样 ...

  5. 浅谈JS中的高级函数

    在JavaScript中,函数的功能十分强大.它们是第一类对象,也可以作为另一个对象的方法,还可以作为参数传入另一个函数,不仅如此,还能被一个函数返回!可以说,在JS中,函数无处不在,无所不能,堪比孙 ...

  6. 扩展Python模块系列(二)----一个简单的例子

    本节使用一个简单的例子引出Python C/C++ API的详细使用方法.针对的是CPython的解释器. 目标:创建一个Python内建模块test,提供一个功能函数distance, 计算空间中两 ...

  7. [算法题] Remove Element

    题目内容 本题来源:LeetCode Given an array and a value, remove all instances of that value in place and retur ...

  8. VS2013 C++代码运行问题

    VS2013(工具集V120)下编译的C++代码,在win7运行错误,提示缺少msvcr230.dll,但是添加dll之后无效. 解决办法: 官方下载VS2013的C++运行库: vcredist_x ...

  9. Vue过渡效果之CSS过渡

    前面的话 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.本文将从CSS过渡transition.CSS动画animation及配合使用第三方CSS动画库(如animate. ...

  10. javascript面向对象属性函数用法(defineProperty与getOwnPropertyDescriptor)

    defineProperty用于设置一个对象的属性描述符,属性描述符有4个:[[Configurable]], [[Enumerable]], [[Writable]],[[Value]] 当一个属性 ...