一些废话(直接看代码的可跳过)

“跨域了,咋搞啊!”

“问你自己啊,我们后台不配合解决的。”

“你们写几句话就好了啊,cors、jsonp、header ......”

“搞不来!不合法!不安全!......”

“卧槽,这接口又跨域了,我CNMLGB”

“你TM不会自己url-get、form-post、写nginx代理啊!” ......

几个月后
复制代码

“这接口跨域了!”

“写反向代理啊,上次你不是弄过吗?”

“我TM早忘了......”

如果你无论如何都得仍受并面对这样的后台小伙伴的话,那这篇文章来解救你了,让你的nginx配置信息管理的又简单,又清晰,而且fork一下github随时都不会忘了呢~


面向读者

  1. 无论如何都si不配合跨域的后台儿子们
  2. 总忘记咋配置nginx代理的前端爸爸们
  3. 老想跨域干些heiheihei的爬虫绅士们
  4. 想解决或想了解跨域问题的萌新们 ......

想要达到的目的

  1. 只用一句命令行来执行配置文件的创建、修改
  2. JS配置简单明了,不会JS的小伙伴懂json格式就能轻易维护
  1. 对于水平稍高的朋友们可对代码进行二次开发
  2. 跨域不再困难

需要的工具

  • node
  • cmd(命令指示符)

Tips

以下内容会以初学者的角度进行并言简意赅的方式急速说明,掌握者可以跳着看
复制代码

在开始之前您可能需要初步了解这些东西

1. 什么是正向/反向代理

2. 什么是跨域


1)什么是正向/反向代理

正向代理:

我要拿C的数据,但请求不到C(例如谷歌),不过我知道B是能请求到C的,于是我去告诉B,B帮我拿回了C的数据,有点翻墙的意思。敲黑板,划重点(C只知道B是他的小伙伴,并不知道A是谁

反向代理:

我又要去拿C的数据了,不过这次运气好,C我能直接访问到(比如百度),那很棒哦,我自己搭建了个服务器B,B帮我拿回了C的数据。敲黑板,划重点(C并不知道B是他的小伙伴,因为AB是一伙的


2)什么是跨域

请求非自身(地址||端口)都算跨域
复制代码

写一个非自身地址的AJAX的请求(起步)


步骤一:找接口

首先咋们开始在网站上找各种接口,那我这边找了一个百度贴吧的post接口

请求头

请求值

返回值


步骤二:创建index.html发起AJAX请求

打开你善用的编辑器直接复制以下代码

<!DOCTYPE>
<html><meta charset="UTF-8" /><head><title></title></head><body></body><script src="https://code.jquery.com/jquery-3.0.0.min.js"></script><script>$.ajax({type: "post",url: "http://tieba.baidu.com/connectmanager/user/updateFlashInfo",data: '{"appid":"tieba","cuid":"73118464C47E43476FB3E50ACD8E32C9:FG:1","connection_id":"","lcs_ip":"10.46.235.62","lcs_port":"8891","lcs_fd":"10619","device_type":"21"}',async: true,success: function (res) {document.write(JSON.stringify(res))}})</script>
</html>
复制代码

跑服务试试?(这里是从8020端口开启的服务器)

哇塞通啦,200诶!我啥都没操作只是写了个$.ajax就通了呀?通个毛......

以上console是标准的跨域error,就算返回200也会被浏览器自身给截掉,无论如何success都获取不到Response里的值
复制代码

开始nginx反向代理(进阶)

这里就不讲正常情况下nginx如何配置了,百度很多。 这里直接附上我的github,大家去下载并且我对以下代码进行JS配置讲述

下载是非常必要的,因为在github上我内置了nginx

Github:https://github.com/gs3170981/nginx_quick


步骤一:配置server.js

1)下载完目录结构应该是这样的

这里我内置了nginx,开不开心。
复制代码

2)打开server.js,里面大致内容是这样的

3)如果你了解过或曾经配过nginx,那你一定很鸡冻,没错,这里呈现的就是配置项,意味着以后管理配置文件只需要修改这儿就OK了,因为有注释我就不一一解释了。

注意'/'别写反了,不然会被转义报错


步骤二:执行node命令

1)win+r 打开你的cmd,cd到nginx所在的目录(即是下载后所在的目录)执行

node server

如果cmd没报错的话,你的文件结构应该变成如此了

2)那么请再执行

nginx

如果你除了关闭啥都点不了的话,说明开启成功了(老司机一般都不会这样用...嘿嘿,推荐到目录下双击执行


步骤三:请求试试!

nginx是服务器,所以开启的port必须为js文件中设置的port

打开127.0.0.1:8016
复制代码

我擦,咋啥都没显示?不是js中都输出了吗?我们来看看控制台

汗,还是跨域了,不过如果你是老手的话,应该已经意识到为什么开始要讲解下什么是正向/反向代理,因为还少一步


步骤四:最后再战!

打开index.html,修改一点点的代码

<!DOCTYPE>
<html><meta charset="UTF-8" /><head><title></title></head><body></body><script src="https://code.jquery.com/jquery-3.0.0.min.js"></script><script>$.ajax({type: "post",url: "connectmanager/user/updateFlashInfo", // 注意这里改成了相对路径data: '{"appid":"tieba","cuid":"73118464C47E43476FB3E50ACD8E32C9:FG:1","connection_id":"","lcs_ip":"10.46.235.62","lcs_port":"8891","lcs_fd":"10619","device_type":"21"}',async: true,success: function (res) {document.write(JSON.stringify(res))}})</script>
</html>
复制代码

A、B是相互认识并在同一服务器上的,B代理了C,则相当于同在了一个地址下,所以需改成相对路径

好,保存刷新一下

天啦噜,好像成功呢了,再看下请求

没有报错,正确返回了呢!


相关技术链接

该文章运用到了node(fs模块)想多了解的,请移步下方链接查看

CSDN:http://blog.csdn.net/Mcky_Love/article/details/78679291

掘金:https://juejin.im/post/5a28aead6fb9a0450c494bc6


关于

make:o︻そ╆OVE▅▅▅▆▇◤(清一色天空)

blog:http://blog.csdn.net/mcky_love

github:https://github.com/gs3170981/nginx_quick(好用的话记得加星哦!)


结束语

该功能的实现主归功于fs的文件创建便利,此项可用于多种批量文件/文件夹操作的环境,不单指向开发哦~

JS维护nginx反向代理,妈妈再也不用担心我跨域了!相关推荐

  1. nginx反向代理node,解决前后端跨域问题

    nginx代理某一端口 server {listen 80;server_name www.zhangwenzong.cn;access_log /home/zhangwenzong/pb.haoli ...

  2. 妈妈再也不用担心别人问我是否真正用过redis了

    1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...

  3. ERC721:全生命周期精析,妈妈再也不用担心我不会玩NFT合约啦

    ERC721:全生命周期精析,妈妈再也不用担心我不会玩NFT合约啦 由于篇幅有限,本博客将围绕ERC721核心展开介绍,文章内容尽量做到通俗易懂,但其中不可避免地可能涉及一些新手不友好的概念,您可以查 ...

  4. Java实现印刷体转手写体—妈妈再也不用担心我被罚抄作业了

    Java实现印刷体转手写体-妈妈再也不用担心我被罚抄作业了 文章目录 Java实现印刷体转手写体-妈妈再也不用担心我被罚抄作业了 缘起 开始开发 测试效果 开源地址和总结 郑重声明 因本文中涉及到爬虫 ...

  5. python绘制横向柱状图 妈妈再也不用担心我不会画图了

    python绘制横向柱状图 妈妈再也不用担心我不会画图了 前言 实现代码 成果 前言 事情要从一次画图开始说起 当我开开心心搞到一堆数据,以为能够休息的时候,这时候我突然想起来,是不是绘制成柱状图更直 ...

  6. 妈妈再也不用担心我的macbook发烫了计划2.0Beta mac发热

    mac 发热 解决 妈妈再也不用担心我的macbook发烫了计划2.0Beta 贴吧好多小朋友反应Macabook看视频发热严重,Flash发热当热严重了,没事正很正常,中国这群无良厂商迟迟不改,看看 ...

  7. 计算机管理怎么给硬盘重新合区,一分钟学会磁盘合区,妈妈再也不用担心!

    原标题:一分钟学会磁盘合区,妈妈再也不用担心! 自从上一篇文章<一分钟搞定电脑磁盘分区,再也不求人!>中小编讲到了,日常生活中我们的电脑该如何区分区,留言区就有小伙伴问我,怎么把D盘的容量 ...

  8. ERC1155: 批发小能手,妈妈再也不用担心网络拥堵造成的gas费飙升啦

    ERC1155: 批发小能手,妈妈再也不用担心网络拥堵造成的gas费飙升啦 Hello - 大家好,首先感谢大家对本系列前两篇文章

  9. 致小白:详解调幅收音机的原理 #妈妈再也不用担心我不懂收音机啦!

    标题:致小白:详解调幅收音机的原理 #妈妈再也不用担心我不懂收音机啦! 作者: Pleiades_Antares 出品: BDF元培调查组-北京市内包小组 版权声明:本作系完全原创,他人不得在原作者不 ...

最新文章

  1. Visual Studio c++必要的背景知识--链接与编译
  2. 42HS48EIS步进闭环电机最大转速
  3. python语言入门书籍推荐-入门python有什么好的书籍推荐?
  4. python固定数据类型_Python的数据类型
  5. php python插件,Python:开发Sublime插件,方便PHP开发
  6. TypeScript 函数类型参数的用法举例
  7. 一个自动生成关键字索引页面的比处理文件
  8. 【牛客 - 318E】爱摸鱼的Dillonh(数学,暴力,细节)
  9. python布局管理_Python入门-图形用户界面-几何布局管理器-grid布局管理器
  10. 【翻译】Qt Designer 布局宝典
  11. python内turtle库应用
  12. 数据仓库-Hive(一)
  13. Python学习周期一般多长?需要多久?
  14. VRchat改模型相关
  15. 子数组(Subarray)
  16. Win7秘籍 如何用压缩卷调整不合理分区
  17. 打开eclipse 运行发现tomcat出问题。如路径找不到 (1)eclipse 运行出现:The archive:C:/tomcat/bin/bootstrap.jar which is refe
  18. linux ssd磁盘格式化工具,使用Linux对Samsung SSD 850 PRO进行分区和格式化
  19. 女生学计算机还是英语,我是读理科班的女生,但是数学和英语不好,想读计算机专业,那样读什么好呢?希望哥哥姐姐指点下!十分感谢!...
  20. python打包代码中涉及的图片_pyinstaller打包程序 带图片

热门文章

  1. python将大文件拆分成多个小文件,同时对各小文件处理以节省时间
  2. linux 让代码美观,为什么 Python 代码要写得美观而明确 | Linux 中国
  3. 将fddb标注转换为VOC格式标注
  4. Spring中的静态代理和动态代理
  5. TestStand-用户界面
  6. 如何撰写数据运营分析报告
  7. Python将两个txt文件按行合并
  8. 精通Javascript+jQuery视频下载
  9. Git版本SVN工具简介与安装配置及使用
  10. 最强chrome、edge的广告拦截插件